有没有办法在 PHP 中定义抽象类属性?
abstract class Foo_Abstract {
abstract public $tablename;
}
class Foo extends Foo_Abstract {
//Foo must 'implement' $property
public $tablename = 'users';
}
原文由 Tamás Pap 发布,翻译遵循 CC BY-SA 4.0 许可协议
回答问题为时已晚,但您可以使用 self
和 static
之间的区别,如下所示
<?php
class A { // Base Class
protected static $name = 'ClassA';
public static function getSelfName() {
return self::$name;
}
public static function getStaticName() {
return static::$name;
}
}
class B extends A {
protected static $name = 'ClassB';
}
echo A::getSelfName(); // ClassA
echo A::getStaticName(); // ClassA
echo B::getSelfName(); // ClassA
echo B::getStaticName(); // ClassB
原文由 M a m a D 发布,翻译遵循 CC BY-SA 4.0 许可协议
1 回答4k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
2 回答2.2k 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
2 回答2.2k 阅读
2 回答1.4k 阅读✓ 已解决
1 回答569 阅读✓ 已解决
没有定义属性这样的事情。
您只能声明属性,因为它们是初始化时保留在内存中的数据容器。
另一方面,一个函数可以被声明(类型、名称、参数)而不被定义(函数体缺失),因此可以被抽象化。
“抽象”仅表示已声明但未定义的内容,因此在使用它之前,您需要对其进行定义,否则它将变得无用。