我在网上看到了很多代码,这些代码具有在while循环的布尔条件内将值分配给变量的功能:
while ($var = testfunction($param1, $param2))
{
echo "Hello World!<br>";
}
题:
在布尔条件($var = testfunction($param1,$param2))内发生的事件的顺序是什么?如果它是真实的,那一阵子会判断什么价值呢?
我自己的测试:
我已经做了自己的测试.当函数完全为空并且什么也不返回时,while循环内的代码不会执行,但是当函数testfunction()返回TRUE时,while循环内的代码将继续执行.这使我推断出while条件正在检查$var中的结果值是什么.因此,如果该函数将布尔值返回到$var中,则这将是while判断的条件.这也使我相信,如果$var最终是一个数字,则== 0等于false,而!= 0则等于true.
这些是我的推论,尽管我没有找到任何依据,但我的分析可能错了.
解决方法:
整个表达式正在执行,其值转换为boolean.
($var = testfunction($param1, $param2))
首先,将调用testfunction(…),然后进行分配.根据manual:
The value of an assignment expression is the value assigned.
因此,返回并分配给$var的所有内容都将转换为布尔值,并由WHILE循环进行评估.如果分配的值为null,[],0等,则将不执行while循环中的代码块.否则将被执行.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。