可能重複: Calling non static method with "::" Does static method in PHP have any difference with non-static method? 什麼是允許使用調用非靜態方法::的原因,因爲我們不試圖用$ this訪問對象上下文中的任何內容?它是一種向後兼容的東西,還是出於某種特定的原因?我是否應該習慣於避免使用::來訪
在PHP 5.3.6,我注意到,以下將不起作用: class Foo{
public static $class = 'Bar';
}
class Bar{
public static function sayHello(){
echo 'Hello World';
}
}
Foo::$class::sayHello();
發出unexpe
隨着一類,如美孚: struct Foo { static const int i = 9; };
我發現,GCC 4.5將拒絕以下 Foo f;
int x = decltype(f)::i;
如果我使用它會工作中間typedef,如: typedef decltype(f) ftype;
int x = ftype::i;
但我更喜歡保持名稱空間乾淨。我認爲優先級可能是一個問題