php - 在 bool 条件内使用函数进行 While 循环

标签 php function while-loop

我在网上看到很多代码都有一个函数,它可以在 while 循环的 bool 条件中为变量赋值:

while ($var = testfunction($param1, $param2))
{
  echo "hello world!<br>";
}

问题:

bool 条件 ($var = testfunction($param1, $param2)) 中发生的事件顺序是什么? while判断的是什么值是真还是假?

我自己的测试:

我已经做了自己的测试。当函数完全为空,没有返回值时,while 循环内的代码不会执行,但是当函数 testfunction() 返回 TRUE 时,while 循环内的代码循环将继续执行。这使我推断 while 条件正在检查 $var 中的结果值是什么。所以如果函数返回一个 bool 值到$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 的任何内容,都将被转换为 bool 值并由 WHILE 循环进行评估。如果分配的值为 null、[]、0 等,则不会执行 while 循环中的代码块。否则将被执行。

关于php - 在 bool 条件内使用函数进行 While 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37380041/

相关文章:

php - 将 var 从 php 传递到 javascript

php - magento 自定义支付模块用于多运

Objective-C 调用 C 函数 - 链接器命令失败,退出代码为 1

c++ - 您将如何对函数的性能进行基准测试?

c++ - malloc/new 在函数指针内失败

c++ - 结束交互式程序会导致无限循环

php - 从填充选择框中排除 int=0

php - 使用 foreach 显示列中的所有行

c++ - 当我调用我的函数时,while 循环会跳过一个步骤

java - 是否可以在 while 循环中设置可变数量的条件?