在PHP中,就是使用指針,如之間的區別:PHP指針VS引用
function foo($var)
{
$var = 3;
}
$a = 0;
foo(&$a);
和參考:
function foo(&$var)
{
$var = 3;
}
$a = 0;
foo($a);
他們都修改原始變量的值,但他們在內部表現不同?
在PHP中,就是使用指針,如之間的區別:PHP指針VS引用
function foo($var)
{
$var = 3;
}
$a = 0;
foo(&$a);
和參考:
function foo(&$var)
{
$var = 3;
}
$a = 0;
foo($a);
他們都修改原始變量的值,但他們在內部表現不同?
在PHP中,沒有指針,只有引用。您的示例演示pass by reference
代碼段之間的區別僅在語法上,第一種語法現在已被棄用。
謝謝,我不知道他們是同樣的事情或第一種風格已被棄用。另外,不通過引用存儲函數參數中傳遞的變量的引用?如果是這樣,那麼沒有參考文獻? –
好吧,我不確定內部如何實現傳遞引用。我只考慮它,因爲許多語言都通過引用,但沒有PHP引用。但是這與你的問題沒有關係,所以我刪除了混淆部分。 – Yogu
在內存管理方面,是否引用了一個更好的實踐? –
使用第二個,因爲第一個不再支持/可用。 – luk2302
是的,它們的工作方式是一樣的,這是來自PHP 5.3.8的第1個替代方法的消息:'不推薦使用:不推薦使用通過引用時間傳遞;如果您想通過引用來傳遞它,請修改foo()的聲明。如果你想啓用呼叫時傳遞引用,你可以在第8行的C:\ xampp \ htdocs \ a.php中的INI文件中設置allow_call_time_pass_reference爲true。 – Stano