通過 - >和via ::?訪問類方法有什麼區別?通過 - >和via ::?訪問類方法有什麼區別?
5
A
回答
6
4
::
用於訪問靜態方法或屬性,所以不必實例包含類的一個對象。
->
用於訪問實例化對象的方法或屬性。
2
使用->
意味着您基於實例(它保留對象的狀態,如私有/公共變量集)的訪問方法。
::
是一種靜態方法,這意味着如果對象已經或尚未初始化,它就沒有任何障礙,但是這些方法屬於這個對象。
圖片如下:
class Mustang
{
var $gallons = 12; // gallons
public function getFuel()
{
return $this->gallons;
}
public static function getEngine()
{
return "V8";
}
}
$mustang = new Mustang(); // creating an instance
echo $mustang->getFuel(); // retrieve the fuel (instance, _this_ mustang)
echo Mustang::getEngine(); // echo a stat about Mustangs in general (static)
如果你有一個「野馬」的一個實例,每個實例都可以(假設)有燃料的給它(這是基於實例的具體金額,以及將可以使用->
訪問)。
如果你想要的東西,還涉及到野馬,但對具體的實例本身沒有霸菱,你要提到一個靜態方法(在這種情況下,所有的野馬在這種情況下,V8,象徵性的::
)。
1
弗朗索瓦所說的是正確的。 ::
運營商被稱爲Scope Resolution Operator ....和(不管你信不信)稱爲paamayim-nekudotayim。它用於訪問類的靜態,常量和重載成員。我強調班級,因爲它不用於特定的對象。您可以將範圍解析運算符視爲類本身的元素;它對自己及其父母行事。 (想想看,類常量不屬於任何特定的對象,所以你不會使用->
這給我們帶來什麼->
?它是用來操作對象,而不是類的。當你例如:
$john = new User(); //create the object
$john->age = 10; //accessing an object property
$age = $john->getAge(); //accessing an object method
相關問題
- 1. 「訪問器方法」和「構造器」有什麼區別?
- 2. AST:訪問和僅使用查詢方法有什麼區別?
- 3. 訪問器和增變器方法有什麼區別?
- 4. GET和POST方法有什麼區別?
- 5. '>'和'>>'有什麼區別?
- 6. 類別和類方法有什麼區別?
- 7. 算法和方法有什麼區別
- 8. Java中> =和=>有什麼區別?
- 9. 'remove'和'removeChild'方法有什麼區別?
- 10. 訪問sqlite和mysql的方式有什麼區別?
- 11. Monads:seq和>> =有什麼區別?
- 12. 在Purescript; - >和=>有什麼區別?
- 13. 「%>」和「 - %>」之間有什麼區別?
- 14. <%# %>和<%= %>有什麼區別?
- 15. > =和=>有什麼區別?
- 16. Html.Partial和Html.Action方法有什麼區別?
- 17. browser.sleep()和browser.wait()方法有什麼區別?
- 18. 方法`toHaveBeenCalled()`和`andCalledThrough()`有什麼區別?
- 19. 'configure'和'configureGlobal'方法有什麼區別?
- 20. bcrypt()和crypt()方法有什麼區別?
- 21. UrlHelper.Route和UrlHelper.Link方法有什麼區別?
- 22. nibNameOrNil和ViewDidLoad方法有什麼區別?
- 23. 方法和協議有什麼區別
- 24. Ada中的=和=>有什麼區別?
- 25. (null)和<null>有什麼區別?
- 26. 訪問類方法的PHP區別
- 27. 這兩種訪問SharePoint模型的方法有什麼區別?
- 28. 在Ruby中,類方法和類的單例方法有什麼區別?
- 29. 訪問說明符和訪問修飾符有什麼區別?
- 30. - >和=>有什麼區別?什麼是 ::?
可能重複的[參考 - 這是什麼符號在PHP中的意思?](http://stackoverflow.com/questions/) 3737139/reference-what-does-this-symbol-mean-in-php) –
這顯然是一個dup。doens't值得+1 – dynamic