2013-07-26 63 views
2

我見過兩個PHP文檔(看似可互換)的文檔,並想知道是否有一種方法來瘋狂和每個應該是用過的? (或者,如果他們的意思是不同的東西,我已經錯過了,因此在文檔中一個細微差別)什麼時候使用::和何時使用文檔中的#

例子:

ClassName#foo() // a method 
ClassName::bar() // a method 
ClassName::baz // a property 

我(還)沒有看到任何人嘗試使用ClassName#qux的屬性,但也許這也是可能的!

希望這條線將有助於設置人們的直線和狹窄!

在此先感謝

P.S.這很難在Google上搜索。 「#」=「hash」=「磅」和「::」=「雙冒號」=「T_PAAMAYIM_NEKUDOTAYIM」......當然,「散列」也表示它自己的一切。

編輯:另一個問題是,它是否是正常/正確的文檔屬性和變量(有或沒有前導$ IE)

+3

我通常使用'::'。 php文檔也使用它。所以,在我看來_。這是更好的選擇。這個問題是基於意見的。 – Leri

+0

哈希混淆了我的意見,所以我更喜歡::,但畢竟這是一個基於意見的選擇。 – Arda

+0

您可以使用您描述的'#'方法提供PHP文檔的鏈接嗎?或者這是你只在特定的應用/框架中看到的東西?我從來沒有見過它 – Clive

回答

2

即使對於PHP而言,這也是不正常的,這是很多的說法。永遠不要在任何情況下做。

+0

嗯,我認爲20分鐘足夠法官和陪審團進行交換,我會接受亞倫的答案,除非有人提出一個看法,認爲社區的其他部分似乎缺乏! – caponica

1

這可能是實際的靜態方法,其可之間的歧義ClassName::fooClassName::$foo字面上被稱爲Foo::bar()實例需要對象實例的方法,如$foo->bar()。這是我能想到的唯一明智的解釋,在任何情況下,我都不知道這是官方的標準。

+0

嗯,我認爲可能是這樣,但是這個頁面上的例子並不符合這個描述。例如。 ''EntityManager#find()''需要一個EntityManager的實例。 「User :: addReportedBug()'' – caponica

+0

因此它們在使用上並不一致,或者一些Ruby程序員在編寫文檔時錯誤地使用了錯誤的語言。 – deceze

+0

@deceze等等,你可以在Ruby中使用'#'這種方式嗎?我見過'「#{...}''語法''eval'塊的字符串,這是一個骯髒的事情可以做你的評論字符,但從來沒有見過它用於引入類或實例方法。 –

相關問題