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

运行结果:

PHP创建对象

Tags: PHP创建对象

分享到: