2010-07-06 35 views
0

我有這樣的代碼問題類和VAR和__construct

$test = new test(); 
$test->var_test = array('one','two'); 


class test{ 

    var $var_test = array(); 


    function __construct(){ 

    var_dump($this); 

    } 


} 

後續代碼var_dump給我$ var_test在空 原因;我給它的onetwo

回答

2

不,你添加的值比__construct()發射晚。

class test{ 
    var $var_test = array(); 
    function __construct($vars) 
    { 
     $this->var_test = $vars; 
     var_dump($this); 
    } 
} 
new test(array('one','two')); 

將工作。

+0

等等是什麼使用完全贊成var $ var_test = array(); 在開始 – 2010-07-06 08:04:53

+0

抱歉,也許我不明白你的問題。 $ var_test可以是任何你想要的。例如,在你的類中使用某種配置變量。 – fabrik 2010-07-06 08:12:54

2

否,在此輸出不爲空,則輸出是這樣的:

object(test)#1 (1) { 
    ["var_test"]=> 
    array(0) { 
    } 
} 

這意味着var_test爲空數組。

在第一行調用構造函數(__construct函數),在第二行調用你的數組。因此,當構造函數運行時,數組尚未填充,因此爲空。

+0

以及我如何填充它;我想加var = xx;在開始時應該這樣做 – 2010-07-06 08:06:28