批改状态:合格
老师批语:
1.魔术方法
__construct():类的构造函数__destruct():类的析构函数(不能带有任何参数)__call():在对象中调用一个不可访问方法时调用__callStatic():用静态方式中调用一个不可访问方法时调用__get():获得一个类的成员变量时调用__set():设置一个类的成员变量时调用__isset():当对不可访问属性调用isset()或empty()时调用__unset():当对不可访问属性调用unset()时被调用。__sleep():执行serialize()时,先会调用这个函数__wakeup():执行unserialize()时,先会调用这个函数__toString():类被当成字符串时的回应方法__invoke():调用函数的方式调用一个对象时的回应方法__set_state():调用var_export()导出类时,此静态方法会被调用。__clone():当对象复制完成时调用1.命名空间的基本组成:命名空间关键字:namespace+空间名字+空间中主体内容,例如:namespace one或者namespace one{……};
2.命名的空间的思维系统文件夹原理,使用来解决php中全局成员的命名冲突(类、函数、常量)
3.命名空间多层级的写法:namespace one\two\three;
4.当前空间中调用后代命名空间的写法:(可省略当前命名空间名字直接从子级命名空间开始写):在two空间中调用子空间中的类方法three\Demo::show()
5.当前空间中调用父级命名空间的写法:(从根命名空间开始写):在two空间中调用父级空间中的类方法\one\Demo::show()
6.知识点:
clone:实例化对象后的赋值引用赋值,使用关键字clone可以完成对对象的复制得到新的独立的对象;例如:$obj1=clone $obj;1.代码
<?phpclass Demo{public $name;private $age;//构造函数public function __construct($name,$age){$this->name=$name;$this->age=$age;}public function __toString(){return "我是一个类";}public function __invoke(){return "我是一个类";}public function __get($name){return "未定义的属性或无访问权限";}public function __set($name,$value){printf('%s(%s)没有此属性',$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)."]";}// 析构函数// public function __destruct(){// echo "销毁实列";// }}$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);//销毁$demo实列echo "<br>";
2.运行结果
1.代码
<?phpnamespace one{class Demo{}// function func(){// echo "我是one中的函数";// }func();//函数在当前空间没有时,会自动向上层空间查找直到摘掉位置;常量和函数相同;但类只会在当前空间查找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 "我是跟空间函数";}func();echo Demo::class."<br>";echo one\Demo::class."<br>";echo one\two\Demo::class."<br>";}
2.运行结果
1.代码
demo11-1.php
<?phpnamespace one;$name="种业圈";
demo11-2.php
<?phpnamespace one;function show($name){echo "Hello,".$name;}
demo11.php
<?phpnamespace one;include "demo11-1.php";include "demo11-2.php";show($name);
2.运行结果:
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号