【发布时间】:2015-01-13 13:02:45
【问题描述】:
这是我的例子:
trait FileConfig {
public static function getPathForUploads() {
$paths = static::getPaths();
//etc.
}
abstract public static function getPaths(); //doesn't work. Error: "Static function SharedDefaultConfig::getPaths() should not be abstract"
abstract public function getPaths(); //OK
public static function getPaths() {} //OK
}
类:
class AppConfig {
use FileConfig;
public static function getPaths() {
return array(...);
}
}
呼叫:
AppConfig::getPathForUploads();
必须将其设为静态和抽象(强制使用 FileConfig 的类实现 getPaths)。
我想知道如何实现改变它的 static 属性的方法?这是一个好的做法还是有更好的解决方案?有一天会变成非法的吗?
谢谢
【问题讨论】:
-
我在 AWS 的 PHP SDK 中看到了
abstract public function,但我不明白为什么不直接使用接口和/或抽象类?