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循环中的代码块.否则将被执行.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...