回答
PHP中的變量名以$
開頭,因此$entryId
是變量的名稱。 $this
是在PHP面向對象的編程,這是參考當前對象的特殊變量。
->
用於訪問的對象構件(如屬性或方法)在PHP中,類似於C的語法++。
因此,您的代碼意味着:將變量$entryId
的值放入該對象的entryId
字段(或屬性)中。
的&
操作者在PHP,意味着通參考。下面是一個例子:
$b=2;
$a=$b;
$a=3;
print $a;
print $b;
// output is 32
$b=2;
$a=&$b; // note the & operator
$a=3;
print $a;
print $b;
// output is 33
在上面的代碼,因爲我們使用&
操作者,到了那裏$b
指向被存儲在$a
的參考。所以$a
實際上是對$b
的參考。
有指針在這個page
我已更新我的答案^^。 – Maraboc
有引用一個很好的解釋,但是這不的一樣的指針。
php.net有多個頁面解釋What References Are,What References Do和What References Are Not。
也有,多次提到
引用不是指針。
他們提供一種方式來分配$a
到$b
因此,如果您重新分配$b
,$a
的變化,以及:
$a = 'a';
$b = &$a; // Reference
$b = 'b'; // Now $a == 'b'
這可用於函數參數,以及:
function myFunc(&$b)
{
$b = 'b';
}
$a = 'a';
myFunc($a); // Now $a == 'b'
PHP 5.3.0之前,也有可能做了一個名爲「呼叫時間傳遞通過引用」,事情在這裏你將有一個「正常」的函數聲明和使用代替&
運營商代替:
function myFunc($b)
{
$b = 'b';
}
$a = 'a';
myFunc(&$a); // As of PHP 5.3.0 produces a Fatal Error, saying:
// Call-time pass-by-reference has been removed; If you would like to pass argument by reference, modify the declaration of myFunc().
但是要小心!分配另一個參考將不會更新原始參考:
$a = 'a';
$b = 'b';
$c = &$a;
$c = &$b; // $a == 'a'
[Demo]
從所得的捕捉器與global
關鍵字存在。
$a = 'a';
$b = 'b';
function myFunc()
{
global $a, $b;
$a = &$b;
var_dump($a);
}
myFunc(); // 'b'
var_dump($a); // 'a'
這是因爲global $a
實際上意味着$a = &$GLOBALS['a']
,所以給它分配一個新的參考不會更新$GLOBALS
。
當然,您可以直接使用$GLOBALS
來阻止該問題。
但是,如果你使用全局變量,那麼你應該重新考慮你的設計。
有了參考文獻,現在在設置變量= NULL
和使用unset()
之間也存在差異。
= NULL
如下引用,unset()
並不:
$a = 'a';
$b = &$a;
unset($b); // $a == 'a'
$a = 'a';
$b = &$a;
$b = NULL; // $a == NULL
[Demo]
底線:
參考允許的事情沒有他們,將是不可能的,但有時做由於PHP的構建方式,不像人們期望的那樣行事。
- 1. 在函數上使用PHP指針?
- 2. 如何在函數指針中使用函數的地址?
- 3. 如何正確使用函數指針
- 4. 如何使用指針函數?
- 5. 如何使用函數指針?
- 6. 在函數中使用雙指針
- 7. 如何在函數中使用數組指針?
- 8. 如何在Rascal中做'函數指針'?
- 9. 在指針使用函數後,如何更改指針指向的對象
- 10. 如何在js-ctypes中使用指針調用函數
- 11. 如何在C中的struct中使用函數指針?
- 12. 使用函數指針?
- 13. 函數指針的使用
- 14. 使用函數指針
- 15. 使用函數指針
- 16. 如何在指針中使用轉換構造函數?
- 17. 如何在類中使用函數指針?
- 18. 如何在C函數中使用雙指針分配內存?
- 19. 如何在C中使用函數指針?
- 20. 如何在多態中使用函數指針?
- 21. 如何在C中使用函數的指針? (No C++)
- 22. 如何在重載運算符中使用函數指針
- 23. 如何在不同的類中使用函數指針?
- 24. 如何在C中使用結構體,指針和函數?
- 25. 如何在Nimrod中使用函數指針?
- 26. 如何在Win64上使用varargs和C中的函數指針?
- 27. 如何調用帶參數指針的函數指針?
- 28. 如何在MASM中調用指向函數的指針
- 29. c函數指針反函數指針
- 30. 如何在JavaScript中使用函數指針傳遞函數參數
儘管PHP中沒有'指針',但您可以通過'引用':[您可以通過引用函數來傳遞變量,以便函數可以修改變量。](https://php.net/manual /en/language.references.pass.php)。例如_'function test(&$ param1);'_將允許'$ param1'在函數中被修改。 –