-3
我正在尋找相當長的時間來回答這個問題,但谷歌迄今沒有幫助。PHP之間的差異::和 - >
PHP手冊總是指出,即mysqli :: prepare,但在代碼中,我總是必須使用mysqli-> prepare()。有人知道兩種書寫類型之間的區別以及何時可以使用哪種方式?
我正在尋找相當長的時間來回答這個問題,但谷歌迄今沒有幫助。PHP之間的差異::和 - >
PHP手冊總是指出,即mysqli :: prepare,但在代碼中,我總是必須使用mysqli-> prepare()。有人知道兩種書寫類型之間的區別以及何時可以使用哪種方式?
::
是調用一個靜態方法的一類:
Foo::bar();
->
爲類的對象上調用實例方法:
$foo = new Foo;
$foo->bar();
兩者是完全不同的。
之所以手動始終指的是在符號Class::method
方法是,該方法被定義爲一類的一部分,並且該符號是$obj->method
更加混亂,因爲$obj
是任意名稱的變量。這是一個通過它們的「靜態」類名來引用方法的約定,以使它清楚你正在談論什麼類的方法。你知道是否在其簽名的存在或不存在的關鍵字static
的靜態或對象實例上調用方法:
public static DateTime DateTime::createFromFormat (string $format , string $time [, DateTimeZone $timezone ]) ^^^^^^
靜態方法,這樣調用:
$foo = DateTime::createFromFormat(...);
但是:
public DateTime DateTime::add (DateInterval $interval)
不是靜態的,調用作爲實例方法:
$foo = new DateTime;
$foo->add(...);
的靜態方法調用與非靜態方法調用 –
...或者換句話說:[RTM](HTTP:/ /php.net/manual/en/language.oop5.paamayim-nekudotayim.php) – feeela
[PHP中的::(雙冒號)和 - >(箭頭)之間的區別是什麼?](http:// stackoverflow .com/questions/3173501/what-the-difference-between-double-colon-and-arrow-in-php) – Rikesh