PHP基础陷阱题(变量赋值)

yipeiwu_com6年前PHP代码库

复制代码 代码如下:

<?php
$a=3;
$b=6;
if($a=5||$b=7){
$a++;
$b++;
}
var_dump($a, $b);


陷阱一

把$a=5、$b=7看成了$a==5、$b==7
错误结果:3,6

陷阱二

运算符的优先级,认为$a=5赋值成功$b=7没执行
错误结果:6,7

正确理解

陷阱是运算符的优先,赋值运算符(=)的优先级是最低的,所以正确理解应该是
$a=(5||$b=7)
正确结果:true,7

升级一下
变形一
复制代码 代码如下:

$a=3;
$b=6;
$c=1;
if($a=5||$b=7 && $c=10){
$a++;
$b++;
}
var_dump($a, $b,$c);

变形二
复制代码 代码如下:

$a=3;
$b=6;
$c=1;
if($a=0||$b=7 && $c=10){
$a++;
$b++;
}
var_dump($a, $b,$c);

有兴趣的同学可以思考一下:)

相关文章

php实现的错误处理封装类实例

本文实例讲述了php实现的错误处理封装类。分享给大家供大家参考,具体如下: 1、创建MyErrorHandler.php文件 代码如下: <?php class MyE...

php 运行效率总结(提示程序速度)

1,在函数中,传递数组时 使用 return 比使用 global 要高效 比如 function userloginfo($usertemp){ $detail=explode("|"...

PHP获取网站域名和地址的代码

复制代码 代码如下:<? function PMA_getenv($var_name) { if (isset($_SERVER[$var_name])) { return $_S...

php下HTTP Response中的Chunked编码实现方法

进行Chunked编码传输的HTTP Response会在消息头部设置: Transfer-Encoding: chunked 表示Content Body将用Chunked编码传输内容...

如何判断php数组的维度

如下所示:复制代码 代码如下:<?php /**  * 返回数组的维度  * @param  [type] $arr [description] &n...