PHP物件的生成(建立)使用?

Tags: 物件, 傳值,

PHP物件的生成(建立)使用 傳值方式

工具/原料

PHP物件的生成(建立)使用 傳值方式

物件的生成(建立)

從一個類,new出一個物件來,則有這樣的一個說法:

1, 該物件“屬於”該類。

2, 也可以說成:生成了一個物件,建立了一個物件,例項(instance)化出了一個物件

3, 也可以說:該物件是該類的一個“例項”——往往,物件和例項是表達同一個概念。

可以有如下一些方式來生成一個物件(假設類為Dog):

$d1 = new Dog();

$d2 = new self(); //self只能用在類的內部,代表該類本身,後續詳細展開;

$d3 = new $d1(); //通過一個現有物件,也可以例項化出該物件所屬類的一個物件;

物件的使用

基本上,使用物件就是使用物件的屬性和方法而已,比如:

$obj->屬性1 = 值1; //賦值

echo $obj->屬性2; //取得屬性2的值並輸出

$v3 = $obj->屬性3 * 4 + 5; //取得屬性3的值並進行一些計算

$obj->方法1(.....);

通常不能“獨立”使用,比如:

echo $obj; //不可以,假設obj是一個物件

$v4 = $obj * 5 + 6; //也不可以

但可以var_dump()檢視物件的詳細資訊:

var_dump($obj);

物件的傳值方式

其實,也同樣是2種:值傳遞,引用傳遞——跟變數一樣。

比如,普通變數:

$v1 = 1;

$v2 = $v1; //值傳遞;

$v1 = 11;

echo $v2 ; //輸出1

$v3 = & $v1; //引用傳遞;

$v1 = 111;

echo $v3; //輸出111;

但,雖然物件傳值方式,本質上也是這樣,但物件因為其資料的“複雜性”,會有所不同:

物件的儲存方式,跟普通變數不同,如下所示:

普通變數:

PHP物件的生成(建立)使用 傳值方式

可見:

普通變數:變數名和變數資料之間是“直接關係”,用變數就是用該資料;

而:

物件變數:變數名和變數資料之間,還有一個物件編號,該變數是系統內部按當前網頁物件生成的順序給定的,我們無法修改該編號。對比變數直接操作的是該物件編號。該編號自動指向物件資料;

則物件值傳遞時,其原理圖為:

$a1 = new A();

$a2 = $a1; //值傳遞:

PHP物件的生成(建立)使用 傳值方式

PHP物件的生成(建立)使用 傳值方式

將$a1的值改為123之後,其效果類似這樣:

PHP物件的生成(建立)使用 傳值方式

則物件進行“引用傳遞”時,其原理圖為:

$b1 = new A();

$b2 = & $b1; //引用傳遞:

PHP物件的生成(建立)使用 傳值方式

PHP物件的生成(建立)使用 傳值方式

將$b1的值改為123之後,其效果類似這樣:

PHP物件的生成(建立)使用 傳值方式

物件, 傳值,
相關問題答案