如何在同一行中访问PHP中的静态变量

如何在同一行中访问PHP中的静态变量,php,static,Php,Static,首先,我想不出更好的标题,因为我不知道这个方法的名称 考虑以下几点(这是我现在正在做的): 其计算结果为$model->someName 如果属性不是静态的,我可以: return $model->$this->settingsValueColumn; 但这样做: return $model->self::$settingsValueColumn; 是语法错误 也许这是为了写得不同。有什么帮助吗?您可以这样做: 返回$model->{self::$settingsValue

首先,我想不出更好的标题,因为我不知道这个方法的名称

考虑以下几点(这是我现在正在做的):

其计算结果为$model->someName

如果属性不是静态的,我可以:

return $model->$this->settingsValueColumn;
但这样做:

return $model->self::$settingsValueColumn;
是语法错误

也许这是为了写得不同。有什么帮助吗?

您可以这样做:

返回$model->{self::$settingsValueColumn};

我会非常害怕使用这种动态代码——大多数情况下,这是糟糕设计的标志!我没有争辩。我想我可以写一个免责声明,但我会让你的评论帮我这么做。@Sven这是我的第一个Yii插件,我肯定可以从你的经验中学习,如果你想帮助我重新发现/构建它,请访问,谢谢!我没有时间做另一个项目。但有两件事需要你考虑:1。为什么要让房地产充满活力?如果您事先不知道名称,请将其设置为对数组的访问,或者让一个getter接受名称并返回值。二,。为什么要将属性名设为静态变量?如果一个实例更改了该名称,那么所有其他对象也会受到影响——这是一个不必要的副作用,将产生难以跟踪的bug。
return $model->self::$settingsValueColumn;