Home >Backend Development >PHP Tutorial >php5.4 这句 if($a='A'&&1) var_dump($a); 运行结果怎么是 boolean类型

php5.4 这句 if($a='A'&&1) var_dump($a); 运行结果怎么是 boolean类型

WBOY
WBOYOriginal
2016-06-06 20:40:141147browse

版本php5.4
这段代码:

<code>if($a='A'&&1) var_dump($a);
</code>

运行结果:

<code>bool(true)
</code>

Q:结果为什么不是 string 'A' ?

回复内容:

版本php5.4
这段代码:

<code>if($a='A'&&1) var_dump($a);
</code>

运行结果:

<code>bool(true)
</code>

Q:结果为什么不是 string 'A' ?

因为&&是逻辑运算符,=是赋值运算符,前者的优先级比后者要高。明白了吗?

&& 符号有限级高于 =,所以表达式其实是这样的 $a = ('A' && 1)
php中 &&|| 运算符返回的都是布尔值。 不像js
在js 中

<code>('A' && 1) === 1
('A' || 1) === 'A'
</code>

额,楼主,php4都是这个结果

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn