我可以使用while在PHP中什么也不做,如果可能的话,这是一个好的做法吗?

Bor*_*rov 1 php loops while-loop

我想在PHP中做这样的事情

function doSomething() { /* ... */ }

while(my_array[] = doSomething()) { }
Run Code Online (Sandbox Code Playgroud)

而不是使用额外的变量: while(myValue = doSomething()) { myArray[] = myValue; }

使用while block什么都不做好练习?如果不是 - 为什么?

hak*_*kre 8

从技术上讲,花括号用于对while正文内的多个语句进行分组.你甚至都不需要它们.例如,以下是完全有效的PHP代码:

while ($my_array[] = doSomething());
                                   ^
Run Code Online (Sandbox Code Playgroud)

如您所见,这使用分号代替终止while正文的语句(空的).演示


Dan*_*ugg 5

是的你可以.

$x = [];
while ($x[] = rand(0, 3)) { }
var_dump($x);

// array(4) {
//   [0]=>
//   int(4)
//   [1]=>
//   int(2)
//   [2]=>
//   int(2)
//   [3]=>
//   int(0)
// }
Run Code Online (Sandbox Code Playgroud)

但是,如果您重新评估您尝试解决的问题,您可能会发现不同的方法或构造可能会更好,并且不需要while为此目的减少构造.