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