2013-11-26 27 views
-3

過去,我想refrence傳遞對象,但它不給正確的結果 這是我已經嘗試對象不列入同修當對象被refrence在PHP

<?php 
class my_class 
{ 
var $my_var; 
function my_class ($var) 
{ 
global $obj_instance; 
$obj_instance = &$this; 
$this->my_var = $var; 
} 
} 
$obj = new my_class ("something"); 
echo $obj->my_var."\n"; 
echo $obj_instance->my_var; 
?> 

輸出: 東西

預期結果: 東西 東西

+0

注意,因爲PHP 5.3.3類命名的構造函數作爲贊成__construct的'常規方法治療()' –

回答

0

在 「What References Do」 頁面PHP手冊,你可以閱讀:

如果您爲在 函數內聲明的全局變量分配一個引用,則該引用將僅在函數內部可見。你可以通過使用$ GLOBALS數組來避免這種情況。

例子:

<?php 
$var1 = "Example variable"; 
$var2 = ""; 

function global_references($use_globals) 
{ 
    global $var1, $var2; 
    if (!$use_globals) { 
     $var2 =& $var1; // visible only inside the function 
    } else { 
     $GLOBALS["var2"] =& $var1; // visible also in global context 
    } 
} 

global_references(false); 
echo "var2 is set to '$var2'\n"; // var2 is set to '' 
global_references(true); 
echo "var2 is set to '$var2'\n"; // var2 is set to 'Example variable' 
?> 

從PHP.net