PHP創建對象的6種方式


 

創建對象實例:

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

61

62

63

64

65

66

<?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>';

運行結果:

 

 

 能掌握以上技術這些人必然具備在技術上有獨當一面的能力,從一個 Coder 逐步走向 CTO 或是 架構師。為了大家能夠順利進階高級、架構師,我特地為大家准備了一套精品PHP架構師教程,適合1-5年內PHP開發人員,順利突破 25K+ 的薪資。

 

 

 

 

找管理領取進階學習路線和視頻文檔資料即可

點此鏈接申請加入Swoole官方群:正在跳轉


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM