当前位置:编程学习 > > 正文

php面向对象如何开发(PHP创建对象的六种方式实例总结)

时间:2022-01-27 01:59:01类别:编程学习

php面向对象如何开发

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

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

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

    php面向对象如何开发(PHP创建对象的六种方式实例总结)

    希望本文所述对大家PHP程序设计有所帮助。

    原文链接:https://blog.csdn.net/Alen_xiaoxin/article/details/84336801

    标签:
    上一篇下一篇

    猜您喜欢

    热门推荐