批改状态:合格
老师批语:看来落下不少,赶紧了
<?php// 1. 描述类成员重载的原理与实现,并实例演示;class Demo1{//都是守保护的成员,外面不能直接拿protected $jj = ['name' => '小马','age' => 20];// 拿到传进来的值,找一下对应的方法public function __get($name){$a = 'get' . ucfirst($name);if (method_exists($this, $a)) {return $this->$a($name);} else {echo '抱歉,当前成员守保护';}}// 动态创建属性public function __set($name, $value){echo $this->jj[$name];$this->jj[$name] = $value;}//根据传进来的参数动态的调用各自的方法public function getName($name){echo '我叫' . $this->jj[$name], '<br>';}public function getage($name){echo '我今年' . $this->jj[$name] . '岁', '<br>';}public function getemail($name){echo '我的邮箱是:' . $this->jj[$name], '<br>';}}$demo1 = new Demo1;echo $demo1->name;echo $demo1->age;$demo1->email = 'admon@qq.com';echo $demo1->email;//直接访问受保护成员,返回受保护提示$demo1->wages = 8999;echo $demo1->jj['wages'];

<?php// 2. 全局成员有哪几种,有什么特点,并实例演示;namespace {// 三种// 2-1.常量,不能更改删除重写const NAME = '小马';// 2-2.类class Ns1{}// 2-3.函数function ns2(){}}// 3. 实例演示空间的声明与空间成员的访问;namespace ns1 {class Na1{}function ns2(){}const NAME = '小马';//访问当前东西在哪个命名空间中echo Na1::class,'<br>';echo ns2::class,'<br>';echo NAME::class,'<br>';}

<?php// 4. 实例演示空间成员的分解与合并操作;//在同一空间中不宜写过多代码,可以把同一个空间的代码分开文件写,但是空间名是相同的//访问文件namespace ns1 {require '1-1.php';echo Na1::class, '<br>';echo ns2::class, '<br>';echo NAME::class, '<br>';}//假如这是另一个文件1-1.phpnamespace ns1 {class Na1{}function ns2(){}const NAME = '小马';}

<?php// 5. 实例演示子空间,并在子空间中访问任何空间中的成员的方式;namespace {function a(){echo '我是全局变量','<br>';}}namespace ns1 {function a(){echo 1,'<br>';}echo a();echo ns2\a();echo ns2\ns3\a();}namespace ns1\ns2 {function a(){echo 2,'<br>';}echo \ns1\a();echo a();echo ns3\a();}namespace ns1\ns2\ns3 {function a(){echo 3,'<hr>';}echo \ns1\a();echo \ns1\ns2\a();echo a();echo \a();}

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号