当我这样做时:
$foo = (1 === 1) ? 'one' : 'not one';
以下表达式给出了错误:
public static $relationsData = [
'tasks' => (Module::isEnabled('Task')) ? [self::HAS_MANY, Task::class, 'foreignKey' => 'created_by'] : [],
];
答案 0 :(得分:0)
您遇到的错误可能与Module::isEnabled('Bar')
有关,而与三元运营商无关。无论三元运算符的条件是什么,首先进行评估,三元运算符只使用该评估的结果。简单地以Foo::bar()
作为条件不应该导致任何问题。
OP更新后编辑: 正如其他人所说,这里的问题是你正在为一个静态类变量赋一个非平凡的表达式。三元运营商只是在做它的工作。