-1
A
回答
4
那麼另一個使用變量,另一個不是。這在這種情況下導致致命錯誤:
class test {
public function __construct(&$a)
{
}
}
$a = true;
new test($a);
new test(true); //Fatal error because this cannot be passed by reference
1
嚴格地說,這取決於如何定義測試。
如果test
被限定爲使得輸入參數是passed by reference,然後2
將提高一個致命的錯誤,因爲true
是一個文字值。
此外,test
可能有副作用,這意味着您執行行1
和2
重要的順序。
1
它取決於test
類的構造函數。在常規通按值構造它們是完全一樣的:
class test {
public $b;
function __construct($a) { $this->b = $a; }
}
這裏,$obj->b
將true
爲您的聲明,如預期。
如果,另一方面,你是passing by reference如果你改變了全球$a
以後你可能會得到不同的結果。例如:
class test {
public $b;
function __construct(&$a) { $this->b = &$a; }
}
$a = true;
$obj = new test($a);
$a = false;
$obj->b
會在這種情況下false
,因爲它是$a
參考!隨着引用,你也可以做它周圍的其他方法,從構造方法中改變$a
:
class test {
function __construct(&$a) { $a = false; }
}
$a = true;
$obj = new test($a);
$a
現在是假的,甚至在全球範圍內!
此外,new test(true)
不可能通過引用傳遞,因爲您不能引用文字值,只能引用其他變量。
相關問題
- 1. 什麼是SetupAPI,SetupAPI1和SetupAPI2?他們之間有什麼區別?
- 2. Socket和Transport之間有什麼區別,如果有一個
- 3. 什麼是OLTP和OLAP。他們有什麼區別?
- 4. 什麼是CSS選擇器':'和'::'?他們有什麼區別?
- 5. EDI,AS2和GS1之間有什麼區別?他們如何一起工作?
- 6. self.view.frame和self.superview.frame之間有什麼區別以及如何使用它們?
- 7. 「setNeedsUpdateConstraints」和「layoutIfNeeded」之間的區別是什麼?他們什麼時候會被叫?
- 8. 「層」和「層」之間有什麼區別?
- 9. Tableau和QlikView之間有什麼區別
- 10. Microsoft.CompilerServices.AsyncTargetingPack和Microsoft.Bcl.Async之間有什麼區別?
- 11. @Entity和@embeddable之間有什麼區別
- 12. ContentObservable和DataSetObservable之間有什麼區別?
- 13. touchmove和gesturechange之間有什麼區別?
- 14. 這兩行之間有什麼區別?
- 15. :notification.flags和notification.defaults之間有什麼區別?
- 16. proc和lambda之間有什麼區別?
- 17. :: after和after之間有什麼區別?
- 18. read()和io.read()之間有什麼區別?
- 19. Request()和Request.Form()之間有什麼區別?
- 20. DesiredCapabilities與RequiredCapabilities之間有什麼區別?
- 21. WebServiceBinding.EmitConformanceClaims和WebServiceBinding.ConformanceClaims之間有什麼區別?
- 22. getA()和this.getA()之間有什麼區別?
- 23. (int)和intval()之間有什麼區別?
- 24. set_value和= pandas之間有什麼區別
- 25. * zoom和zoom之間有什麼區別?
- 26. {0}和「」之間有什麼區別?
- 27. typedef和using之間有什麼區別?
- 28. 「」和「'之間有什麼區別?
- 29. STDIN和tty之間有什麼區別?
- 30. Console.WriteLine()與Debug.WriteLine()之間有什麼區別?
哇,爲什麼這個低估是超越了我...... :( –
SiGanteng,我同意。會很好的解釋。 –