首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP中的$variable或$variable = $variable

PHP中的$variable或$variable = $variable
EN

Stack Overflow用户
提问于 2016-05-28 21:45:24
回答 1查看 83关注 0票数 0

这是一个函数中的独立表达式:

代码语言:javascript
复制
$var OR $var = $var

这个表达式到底是做什么的?

以前从未见过这个,也找不到答案,因为我不知道这是怎么回事。

代码本身来自:Github上的Сodeigniter模板

代码语言:javascript
复制
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);

...
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-28 22:31:52

给出像你这样的表情

代码语言:javascript
复制
is_array($data) OR $data = (array) $data;

我们首先检查http://php.net/operators.precedence上的优先级表。在这里我们看到=OR之上。因此,这一行等于:

代码语言:javascript
复制
is_array($data) OR ($data = (array) $data);

接下来,我们必须检查表中的结合性。or是左关联的,所以它检查is_array($data)。如果返回true,则整个or表达式返回true,其他任何事情都不会发生。

如果is_array($data)返回false,我们必须进一步计算,因此执行$data = (array) $data

最后,这是一种“聪明”的写作方式。

代码语言:javascript
复制
if (!is_array($data)) {
    $data = (array) $data;
}

实际上,在这种特殊情况下,我们也只能编写

代码语言:javascript
复制
$data = (array) $data;

因为(array)强制转换是不操作的,如果$data已经是数组的话。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37503995

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档