微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php-在布尔条件内具有函数的While循环

我在网上看到了很多代码,这些代码具有在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 举报,一经查实,本站将立刻删除。

相关推荐