php中静态方法有什么作用,PHP中的静态方法与非静态方法有什么不同吗?
除此之外,如果您嘗試在您的方法中使用$this,如下所示:
class t {
protected $a = 10;
public function tt() {
echo $this->a;
echo 1;
}
}
t::tt();
當靜態調用非靜態方法時,會發生致命錯誤:
Fatal error: Using $this when not in object context in ...\temp.php on line 11
即你的例子有點太簡單,并不真正符合實際情況;-)
還要注意,你的例子應該給你一個嚴格的警告(quoting):
Calling non-static methods statically
generates an E_STRICT level warning.
實際上(至少用PHP 5.3):
Strict Standards: Non-static method t::tt() should not be called statically in ...\temp.php on line 12
1
所以:不是那么好;-)
靜態地調用一個非靜態方法并不像任何一種良好的做法(這可能是為什么它引發嚴格的警告),因為靜態方法與非靜態方法的含義不同:靜態方法不引用任何對象,而非靜態方法在調用的類的實例上工作.
再一次:即使PHP允許你做某事(也許由于歷史原因 – 如與舊版本的兼容性),這并不意味著你應該這樣做!
總結
以上是生活随笔為你收集整理的php中静态方法有什么作用,PHP中的静态方法与非静态方法有什么不同吗?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PHP js curl,php curl
- 下一篇: php 正则表达式 ies,正则表达式模