我一直在尝试为赋值操作在JavaScript中复制短路计算。
例如,在JavaScript中:
var myObject = {foo: 'bar'};
// if myObject is undefined then assign an empty array
var obj = myObject || [];
obj
现在将引用myObject
我尝试在PHP中复制这个过程,发现它只是将其转换为一个表达式,并返回true或false。
我可以像这样在PHP中完成:
$get = $this->input->get() ? $this->input->get() : array();
这个问题在于我不知道
$this->input->get()
在背后具体做了什么,所以调用这个方法两次是不高效的。因此,我想出了一个创造性的解决方案,如下所示:// $this->input->get() could return an array or false
$get = ($params = $this->input->get() and $params) ? $params : array();
这样做的问题是这可能会使我在将来感到困惑,而且这可能不太有效率。
那么,在PHP中有没有更好的方法可以像这样在一行表达式中分配变量,还是我应该坚持使用:
$get = $this->input->get();
if (!$get) {
$get = array();
}
$this->input->get()
在找不到任何内容时返回一个空查询呢? - Bart Friederichs