Blogger Information
Blog 26
fans 0
comment 0
visits 15783
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
类的重定向,命名空间和内容的访问
庄周梦蝶
Original
828 people have browsed it
  1. <?php
  2. // 1. 描述类成员重载的原理与实现,并实例演示;
  3. class Demo1
  4. {
  5. //都是守保护的成员,外面不能直接拿
  6. protected $jj = [
  7. 'name' => '小马',
  8. 'age' => 20
  9. ];
  10. // 拿到传进来的值,找一下对应的方法
  11. public function __get($name)
  12. {
  13. $a = 'get' . ucfirst($name);
  14. if (method_exists($this, $a)) {
  15. return $this->$a($name);
  16. } else {
  17. echo '抱歉,当前成员守保护';
  18. }
  19. }
  20. // 动态创建属性
  21. public function __set($name, $value)
  22. {
  23. echo $this->jj[$name];
  24. $this->jj[$name] = $value;
  25. }
  26. //根据传进来的参数动态的调用各自的方法
  27. public function getName($name)
  28. {
  29. echo '我叫' . $this->jj[$name], '<br>';
  30. }
  31. public function getage($name)
  32. {
  33. echo '我今年' . $this->jj[$name] . '岁', '<br>';
  34. }
  35. public function getemail($name)
  36. {
  37. echo '我的邮箱是:' . $this->jj[$name], '<br>';
  38. }
  39. }
  40. $demo1 = new Demo1;
  41. echo $demo1->name;
  42. echo $demo1->age;
  43. $demo1->email = 'admon@qq.com';
  44. echo $demo1->email;
  45. //直接访问受保护成员,返回受保护提示
  46. $demo1->wages = 8999;
  47. echo $demo1->jj['wages'];

  1. <?php
  2. // 2. 全局成员有哪几种,有什么特点,并实例演示;
  3. namespace {
  4. // 三种
  5. // 2-1.常量,不能更改删除重写
  6. const NAME = '小马';
  7. // 2-2.类
  8. class Ns1
  9. {
  10. }
  11. // 2-3.函数
  12. function ns2()
  13. {
  14. }
  15. }
  16. // 3. 实例演示空间的声明与空间成员的访问;
  17. namespace ns1 {
  18. class Na1
  19. {
  20. }
  21. function ns2()
  22. {
  23. }
  24. const NAME = '小马';
  25. //访问当前东西在哪个命名空间中
  26. echo Na1::class,'<br>';
  27. echo ns2::class,'<br>';
  28. echo NAME::class,'<br>';
  29. }

  1. <?php
  2. // 4. 实例演示空间成员的分解与合并操作;
  3. //在同一空间中不宜写过多代码,可以把同一个空间的代码分开文件写,但是空间名是相同的
  4. //访问文件
  5. namespace ns1 {
  6. require '1-1.php';
  7. echo Na1::class, '<br>';
  8. echo ns2::class, '<br>';
  9. echo NAME::class, '<br>';
  10. }
  11. //假如这是另一个文件1-1.php
  12. namespace ns1 {
  13. class Na1
  14. {
  15. }
  16. function ns2()
  17. {
  18. }
  19. const NAME = '小马';
  20. }

  1. <?php
  2. // 5. 实例演示子空间,并在子空间中访问任何空间中的成员的方式;
  3. namespace {
  4. function a(){
  5. echo '我是全局变量','<br>';
  6. }
  7. }
  8. namespace ns1 {
  9. function a(){
  10. echo 1,'<br>';
  11. }
  12. echo a();
  13. echo ns2\a();
  14. echo ns2\ns3\a();
  15. }
  16. namespace ns1\ns2 {
  17. function a(){
  18. echo 2,'<br>';
  19. }
  20. echo \ns1\a();
  21. echo a();
  22. echo ns3\a();
  23. }
  24. namespace ns1\ns2\ns3 {
  25. function a(){
  26. echo 3,'<hr>';
  27. }
  28. echo \ns1\a();
  29. echo \ns1\ns2\a();
  30. echo a();
  31. echo \a();
  32. }

Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:看来落下不少,赶紧了
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post