Possible Duplicate:
Why does PHP 5.2+ disallow abstract static class methods?
Why can't you call abstract functions from abstract classes in PHP?PHP嚴格標準:這段代碼有什麼問題?
我在PHP 5.3.8運行此代碼:
abstract class Geometry
{
abstract public static function fromArray(array $array);
}
class Point extends Geometry
{
public static function fromArray(array $point)
{
return new self($point[0], $point[1]);
}
}
而且收到以下錯誤:
Strict Standards: Static function Geometry::fromArray() should not be abstract
- 有什麼不對這種做法?
- 任何可行的替代方案強制混凝土類來實現這種工廠方法?
return static :: fromArray()? – ajreal
@ajreal:'return new static'沒有解決問題,也不是所需的行爲(我想返回一個新的'Point',而不是一個新的'Geometry') – Benjamin
@ajreal:類似的問題,但我不面對相同的用例,我的代碼不會觸發此用戶所面臨的*致命錯誤。我的要求專門針對嚴格標準警告。 – Benjamin