2010-12-06 120 views
1

我試圖做這樣的事情,但我不成功。PHP:多態抽象靜態方法

abstract class Animal 
{ 
    abstract static function getName(); 
    static function sayName() { echo self::getName(); } 
} 

謝謝!

+1

你怎麼樣沒有成功? – alex 2010-12-06 06:58:48

回答

6

這本來是很好,如果你想給的提示,如何你「沒有成功」,但我想你是整個靜態綁定的絆腳石,需要使用late static bindings PHP 5.3中引入的。

1

我的猜測是你可能試圖從該類實例化一個對象。

不能。這是一個abstract類。子類化它,然後實例化它。

7

你有兩個問題:

  1. 靜態函數不能在PHP abstact了。
  2. 正如之前所說,後期靜態綁定:如getName()方法在子類中定義,你需要靜態訪問它::的getName(),而不是自我::的getName()