带有静态调用的PHP三元运算符

时间:2017-02-15 18:34:38

标签: php

当我这样做时:

$foo = (1 === 1) ? 'one' : 'not one';

以下表达式给出了错误:

public static $relationsData = [
    'tasks' => (Module::isEnabled('Task')) ? [self::HAS_MANY, Task::class, 'foreignKey' => 'created_by'] : [],
];

1 个答案:

答案 0 :(得分:0)

您遇到的错误可能与Module::isEnabled('Bar')有关,而与三元运营商无关。无论三元运算符的条件是什么,首先进行评估,三元运算符只使用该评估的结果。简单地以Foo::bar()作为条件不应该导致任何问题。

OP更新后编辑: 正如其他人所说,这里的问题是你正在为一个静态类变量赋一个非平凡的表达式。三元运营商只是在做它的工作。