簡體   English   中英

在PHP中引用

[英]Referencing in PHP

看看PHP中的引用讓我感到困惑,任何人都可以向我解釋這是如何工作的:

private $TestArray1 = Array()
private $TestArray2 = Array()

private function test1(){
$this->test2($this->TestArray1);
$this->test2($this->TestArray2);
}

private function test2($Array){
$this->test3($Array);
}

private function test3($Array){
$Array[0] = 1;
}

如果我想在函數test3中設置私有變量TestArray1和TestArray2,我將把“&”放在哪里?

private $TestArray1 = Array()
private $TestArray2 = Array()

private function test1(){
$this->test2($this->TestArray1);
$this->test2($this->TestArray2);
}

private function test2(&$Array){
$this->test3($Array);
}

private function test3(&$Array){
$Array[0] = 1;
}

因此,您需要在函數聲明中指定& ,並按原樣傳遞參數。

php 5.3中的默認行為是通過引用傳遞對象。 您也可以使用&符號強制原始類型通過引用傳遞,盡管您通常沒有任何理由這樣做。

你的例子可能令人困惑,因為你似乎不在一個類中,所以私有修飾符沒有意義。 沒有理由將成員變量傳遞給方法,因為該方法可以直接訪問它自己。

希望有所幫助。

編輯:我還應該指出,顯然數組不算作“默認通過引用傳遞”的對象。 也就是說,這里需要&:codepad.viper-7.com/LBcr4m

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM