例項化php類的時候如何傳參

2021-06-19 08:26:23 字數 1686 閱讀 6973

當我們例項化乙個php類的時候,要怎麼傳遞引數呢?這取決於該類的構造方法。

例:person.class.php

<?php

class person

function eat()

function xinxi()

function zuoyong()

}?>

son.php

<?php

include('person.class.php');

$son = new person('cuihua',25,'girl');//此處的引數傳遞要和類的構造方法裡面的引數順序對應

//$son->xinxi();//cuihua is girl and age is 25 fuse is yello

$son->name = '田妞';

$son->eat();//田妞要吃飯

?>

注:php類的屬性($name、$age等)可以在該類的全域性範圍內使用,可以把類的屬性視為「該類的」全域性變數。但是當外部程式重新呼叫這個類中的方法時,該類會重新被例項化,也就是說要再次執行構造方法,那麼上一次給$name等屬性賦的值就會被清空,所以$name等屬性的值不會像常量或是session中的值那樣一直保持下去。

son2.php

<?php

include('person.class.php');

$son = new person('cuihua',25,'girl');

$son2 = $son;

$son2->name = '田妞';

$son->eat();//田妞要吃飯

?>

當我把$son物件賦予$sin2之後,改變了$son2的name引數,此時發現$son的name引數也響應的跟著改變,由此可見:在php5中,把物件賦值給變數,是按引用傳遞物件,而不是進行值傳遞,此時並不會建立$son的副本。傳遞物件到函式,或從方法返回物件,是引用傳遞還是值傳遞,待驗證。

可以通過var_dump()列印物件,不過只能列印物件的屬性,它的方法不能列印出來,要想獲取物件的方法列表,可以用get_class_methods函式。

<?php

$son = new person('cuihua',25,'girl');

var_dump($son);

/*object(person)[1]

public 'name' => string 'cuihua' (length=6)

public 'color' => string 'yello' (length=5)

public '***' => string 'girl' (length=4)

public 'age' => int 25

*/$mon = get_class_methods($son);

var_dump($mon);

/*array (size=4)

0 => string '__construct' (length=11)

1 => string 'eat' (length=3)

2 => string 'xinxi' (length=5)

3 => string 'zuoyong' (length=7)

*/?>

例項化php類的時候如何傳參

當我們例項化乙個php類的時候,要怎麼傳遞引數呢?這取決於該類的構造方法。例 person.class.php class person function eat function xinxi function zuoyong son.php include person.class.php son...

php類的例項化物件,php類的定義與例項化方法

php類的定義 類是對某個物件的定義。它包含有關物件動作方式的資訊,包括它的名稱 方法 屬性和事件。實際上它本身並不是物件,因為它不存在於記憶體中。當引用類的 執行時,類的乙個新的例項,即物件,就在記憶體中建立了。雖然只有乙個類,但能從這個類在記憶體中建立多個相同型別的物件。類是通過class關鍵字...

PHP抽象類 無法例項化

類前加 abstract,此類就成為抽象類,無法例項化.舉例 春秋戰國時期,燕零七 飛行器專家,能工巧匠.他寫了乙份圖紙 飛行器製造術 飛行器秘製圖譜 他的孫子問 發動機怎麼造呢?燕零七眼望夕陽 我是造不出來,但我相信後代有人造出來 燕零七的構想,當時的科技造不出來,即這個類只能在圖紙化,無法例項化...