这是一个函数中的独立表达式:
$var OR $var = $var这个表达式到底是做什么的?
以前从未见过这个,也找不到答案,因为我不知道这是怎么回事。
代码本身来自:Github上的Сodeigniter模板
public function build($view, $data = array(), $return = FALSE)
{
// Set whatever values are given. These will be available to all view files
is_array($data) OR $data = (array) $data;
// Merge in what we already have with the specific data
$this->_data = array_merge($this->_data, $data);
...发布于 2016-05-28 22:31:52
给出像你这样的表情
is_array($data) OR $data = (array) $data;我们首先检查http://php.net/operators.precedence上的优先级表。在这里我们看到=在OR之上。因此,这一行等于:
is_array($data) OR ($data = (array) $data);接下来,我们必须检查表中的结合性。or是左关联的,所以它检查is_array($data)。如果返回true,则整个or表达式返回true,其他任何事情都不会发生。
如果is_array($data)返回false,我们必须进一步计算,因此执行$data = (array) $data。
最后,这是一种“聪明”的写作方式。
if (!is_array($data)) {
$data = (array) $data;
}实际上,在这种特殊情况下,我们也只能编写
$data = (array) $data;因为(array)强制转换是不操作的,如果$data已经是数组的话。
https://stackoverflow.com/questions/37503995
复制相似问题