0
您好我有一个类:与受保护财产AbstractEntityType:访问PHP保护性
abstract class AbstractEntityType extends AbstractType {
protected static $lists = null;
public function __construct($lists = array()) {
AbstractEntityType::$lists = $lists;
}
public function configureOptions(OptionsResolver $resolver) {
$resolver->setRequired(array(
'temp', 'statut'
));
}
}
这里是另一个类扩展上一个:
class MyType extends AbstractEntityType {
....
}
我使用一个工厂来创建的MyType等级:
class SimpleFormTypeFactory {
public function createType($entity_type, $entity_stub, $lists = null) {
$type = null;
switch($entity_type) {
....
case SOMENUMTYP:
$type = new MyType($lists);
break;
}
}
我在本地测试它与php 5.4和windows没有问题,但在服务器(Linux和PHP 5.3)我有这个错误:
Error: Cannot access protected property MyType::$lists
这是怎么回事?一个PHP错误?
谢谢
你是对的一件事情:我应该用自己而不是班级的名字(虽然,就像我说的那样,它在测试环境中运行良好)。 – mlwacosmos
@mlwacosmos它也不适用于您的测试环境。但我从来没有在Windows上使用过PHP或服务器,所以我不知道可能会导致什么结果。可能在错误处理,但我猜你会注意到,当它不能正常工作:-) – jeroen
对不起,我犯了一个错误,问题不在建设。就像我写的那样,它起作用。我的问题在别的地方。你之前写的关于“不允许受保护的财产”的看法对我来说似乎并不合适,但我可能是错的。可以调用抽象类中的静态属性。在子类中没有定义构造函数,所以它们都是父类的。 (在Java中就是这样)。我会问我关于我的问题的另一个问题。 – mlwacosmos