Home >Backend Development >PHP Tutorial > php逻辑操作符中&跟&&的异同

php逻辑操作符中&跟&&的异同

WBOY
WBOYOriginal
2016-06-13 12:54:58992browse

php逻辑操作符中&和&&的异同


php有5种算术操作符(+ - * / %),6种赋值操作符(+= -= *= /= %= .=),8种比较操作符(=== = != !==),6种的逻辑操作符(如&&、 ||、 &、 |、 ! 。其中逻辑与&可写成and,逻辑或|写成or),以及一些其他操作符(错误控制操作符@、 执行操作符反引号"--不是单引号、字符串操作符.与.=、递增/递减操作符++/--、三元操作符?:)。

关于操作符优先级,可以参考相关文档。


php中&和&&的异同

<?php $a=10;
if($a>4 && (++$a>10))
{
}
//输出结果为11.
echo $a;
?>

<?php $a=10;
if($a>4 and (++$a>10))
{
}
//输出结果为11.
echo $a;
?>

**************************************************************

<?php $a=10;
if($a>4 && (++$a

<?php $a=10;
if($a>4 & (++$a

*********************************************************

<?php $a=10;
if($a<4 && (++$a>10))
{
}
//输出结果为10.
echo $a;
?>

<?php $a=10;
if($a<4 & (++$a>10))
{
}
//输出结果为11.
echo $a;
?>

*******************************************************************

<?php $a=10;
if($a<4 && (++$a<10))
{
}
//输出结果为10.
echo $a;
?>

<?php $a=10;
if($a<4 & (++$a<10))
{
}
//输出结果为11.
echo $a;
?>

*******************************************************************

<?php // 下面的 sktest() 不被调用,原因是它们被运算符“短路”。
$a = (false && sktest());
$b = (true  || sktest());
$c = (false and sktest());
$d = (true  or  sktest());

// "||" 的优先级比 "or" 高
$e = false || true; // $e 被赋值为 (false || true),结果为 true
$f = false or true; // $f 被赋值为 false [Altair注:"=" 的优先级比 "or" 高]
var_dump($e, $f);

// "&&" 的优先级比 "and" 高
$g = true && false; // $g 被赋值为 (true && false),结果为 false
$h = true and false; // $h 被赋值为 true [Altair注:"=" 的优先级比 "and" 高]
var_dump($g, $h);

?>


表达式一$a && $b ,表达式二$a & $b

1、相同点:两个表达式都是当$a、$b都为true时,表达式为真。两种运算符对此表达式结果没有影响。

2、不同点:表达式$a && $b中&&前面的$a为false时,已确定表达式为假,此时逻辑操作符&&后的$b不再进行计算,即所谓的被运算符“短路”了。而对于表达式$a & $b,不论&前的$a真假,表达式后的$b依然要进行计算。逻辑操作符后的$b是否被运行,可能影响到后面的数据和程序结果。

对于逻辑操作符||和|,异同同上。



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