
批改狀態(tài):合格
老師批語(yǔ):
1.魔術(shù)方法
__construct()
:類(lèi)的構(gòu)造函數(shù)__destruct()
:類(lèi)的析構(gòu)函數(shù)(不能帶有任何參數(shù))__call()
:在對(duì)象中調(diào)用一個(gè)不可訪問(wèn)方法時(shí)調(diào)用__callStatic()
:用靜態(tài)方式中調(diào)用一個(gè)不可訪問(wèn)方法時(shí)調(diào)用__get()
:獲得一個(gè)類(lèi)的成員變量時(shí)調(diào)用__set()
:設(shè)置一個(gè)類(lèi)的成員變量時(shí)調(diào)用__isset()
:當(dāng)對(duì)不可訪問(wèn)屬性調(diào)用isset()或empty()時(shí)調(diào)用__unset()
:當(dāng)對(duì)不可訪問(wèn)屬性調(diào)用unset()時(shí)被調(diào)用。__sleep()
:執(zhí)行serialize()時(shí),先會(huì)調(diào)用這個(gè)函數(shù)__wakeup()
:執(zhí)行unserialize()時(shí),先會(huì)調(diào)用這個(gè)函數(shù)__toString()
:類(lèi)被當(dāng)成字符串時(shí)的回應(yīng)方法__invoke()
:調(diào)用函數(shù)的方式調(diào)用一個(gè)對(duì)象時(shí)的回應(yīng)方法__set_state()
:調(diào)用var_export()導(dǎo)出類(lèi)時(shí),此靜態(tài)方法會(huì)被調(diào)用。__clone()
:當(dāng)對(duì)象復(fù)制完成時(shí)調(diào)用1.命名空間的基本組成:命名空間關(guān)鍵字:namespace
+空間名字+空間中主體內(nèi)容,例如:namespace one
或者namespace one{……}
;
2.命名的空間的思維系統(tǒng)文件夾原理,使用來(lái)解決php中全局成員的命名沖突(類(lèi)、函數(shù)、常量)
3.命名空間多層級(jí)的寫(xiě)法:namespace one\two\three;
4.當(dāng)前空間中調(diào)用后代命名空間的寫(xiě)法:(可省略當(dāng)前命名空間名字直接從子級(jí)命名空間開(kāi)始寫(xiě)):在two空間中調(diào)用子空間中的類(lèi)方法three\Demo::show()
5.當(dāng)前空間中調(diào)用父級(jí)命名空間的寫(xiě)法:(從根命名空間開(kāi)始寫(xiě)):在two空間中調(diào)用父級(jí)空間中的類(lèi)方法\one\Demo::show()
6.知識(shí)點(diǎn):
clone
:實(shí)例化對(duì)象后的賦值引用賦值,使用關(guān)鍵字clone可以完成對(duì)對(duì)象的復(fù)制得到新的獨(dú)立的對(duì)象;例如:$obj1=clone $obj
;1.代碼
<?php
class Demo
{
public $name;
private $age;
//構(gòu)造函數(shù)
public function __construct($name,$age){
$this->name=$name;
$this->age=$age;
}
public function __toString(){
return "我是一個(gè)類(lèi)";
}
public function __invoke(){
return "我是一個(gè)類(lèi)";
}
public function __get($name){
return "未定義的屬性或無(wú)訪問(wèn)權(quán)限";
}
public function __set($name,$value){
printf('%s(%s)沒(méi)有此屬性',$name,$value);
}
public function __wakeup(){
echo "反序列成功";
}
public function __sleep(){
// echo "序列化";
return ["a","b"];
}
public function __call($func,$argv){
echo $func."[".implode(",",$argv)."]";
}
static public function __callStatic($func,$argv){
echo $func."[".implode(",",$argv)."]";
}
// 析構(gòu)函數(shù)
// public function __destruct(){
// echo "銷(xiāo)毀實(shí)列";
// }
}
$demo=new Demo("ldy",20);
echo $demo."<br>";
echo $demo()."<br>";
echo $demo->name."<br>";
echo $demo->myname."<br>";
echo "<hr>";
$demo->sex="男";
echo "<br>";
$demo->name="dlf";
echo $demo->name."<br>";
echo "<hr>";
$string=serialize($demo);
echo $string."<br>";
unserialize($string);
echo "<hr>";
$demo->func(2,3);
Demo::func(4,6,5);
// unset($demo);//銷(xiāo)毀$demo實(shí)列
echo "<br>";
2.運(yùn)行結(jié)果
1.代碼
<?php
namespace one
{
class Demo
{
}
// function func(){
// echo "我是one中的函數(shù)";
// }
func();//函數(shù)在當(dāng)前空間沒(méi)有時(shí),會(huì)自動(dòng)向上層空間查找直到摘掉位置;常量和函數(shù)相同;但類(lèi)只會(huì)在當(dāng)前空間查找
echo \Demo::class."<br>";
echo Demo::class."<br>";
echo two\Demo::class."<br>";
}
namespace one\two
{
class Demo
{
}
echo Demo::class."<br>";
echo \one\Demo::class."<br>";
echo \Demo::class."<br>";
}
namespace {
class Demo
{
}
function func(){
echo "我是跟空間函數(shù)";
}
func();
echo Demo::class."<br>";
echo one\Demo::class."<br>";
echo one\two\Demo::class."<br>";
}
2.運(yùn)行結(jié)果
1.代碼
demo11-1.php
<?php
namespace one;
$name="種業(yè)圈";
demo11-2.php
<?php
namespace one;
function show($name){
echo "Hello,".$name;
}
demo11.php
<?php
namespace one;
include "demo11-1.php";
include "demo11-2.php";
show($name);
2.運(yùn)行結(jié)果:
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號(hào)
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)