当前位置:首页 > PHP教程 > php应用 > 列表

PHP创建对象的六种方式实例总结

发布:smiling 来源: PHP粉丝网  添加日期:2021-11-28 18:27:10 浏览: 评论:0 

这篇文章主要介绍了PHP创建对象的六种方式,结合实例形式总结分析了php类的定义及对象实例化常见操作技巧,需要的朋友可以参考下。

本文实例讲述了PHP创建对象的六种方式,分享给大家供大家参考,具体如下:

  1. <?php 
  2. /** 
  3.  * PHP创建对象的六种方式 
  4.  */ 
  5. class Person{ 
  6.   private $name = 'bruce'; 
  7.   public function getName(){ 
  8.     return $this->name; 
  9.   } 
  10.   public static function getObjBySelf(){ 
  11.     return new self(); 
  12.   } 
  13.   //动态延迟绑定,能识别调用者 
  14.   public static function getObjcByStatic(){ 
  15.     return new static(); 
  16.   } 
  17. } 
  18. //Person子类 Teacher 
  19. class Teacher extends Person{ 
  20.   public static function getObjByParent(){ 
  21.     return new parent(); 
  22.   } 
  23. } 
  24. //1、new 类名();创建对象 
  25. $obj1 = new Person();//等价于写法 $obj1 = new Person; 
  26. echo '类名:'.get_class($obj1).'<br>'; 
  27. echo $obj1->getName().'<hr>'; 
  28. //2、将类名字符串赋值给一个变量,通过变量创建 
  29. $clsName = 'Person'; 
  30. $obj2 = new $clsName(); 
  31. echo '类名:'.get_class($obj2).'<br>'; 
  32. echo $obj2->getName().'<hr>'; 
  33. //3、通过对象实例创建对象 
  34. $obj3 = new $obj2(); 
  35. echo '类名:'.get_class($obj3).'<br>'; 
  36. echo $obj3->getName().'<hr>'; 
  37. //4、通过 new self() 
  38. //$obj4 = (new $obj3())->getObjBySelf(); 
  39. $obj4 = Person::getObjBySelf(); 
  40. echo '类名:'.get_class($obj4).'<br>'; 
  41. echo $obj4->getName().'<hr>'; 
  42. //5、通过 new parent() 
  43. $obj5= Teacher::getObjByParent(); 
  44. echo '类名:'.get_class($obj5).'<br>'; 
  45. echo $obj5->getName().'<hr>'; 
  46. //6、通过 new static(); 
  47. $obj6 = Person::getObjcByStatic(); 
  48. echo '类名:'.get_class($obj6).'<br>';//类名:Person 
  49. echo $obj6->getName().'<hr>'; //bruce 
  50. //当用子类去调用时候,发现static自动识别当前调用者(静态延迟绑定),返回当前调用者对象 
  51. $obj7 = Teacher::getObjcByStatic(); 
  52. echo '类名:'.get_class($obj7).'<br>';//类名:Teacher 
  53. echo $obj7->getName().'<hr>';//bruce 
  54. $obj8 = Person::getObjBySelf(); 
  55. echo '类名:'.get_class($obj8).'<br>';//类名:Person 
  56. echo $obj8->getName().'<hr>'; 
  57. //new self()在子类中调用依旧返回原来父类的绑定 
  58. $obj9 = Teacher::getObjBySelf(); 
  59. echo '类名:'.get_class($obj9).'<br>';//类名:Person 
  60. echo $obj9->getName().'<hr>'; 

运行结果:

PHP创建对象

Tags: PHP创建对象

分享到: