我正在考虑在 PHP 中做这样的事情
function doSomething() { /* ... */ }
while(my_array[] = doSomething()) { }
而不是使用额外的变量:while(myValue = doSomething()) { myArray[] = myValue; }
是否使用 while 块什么都不做?如果不是 - 为什么?
我正在考虑在 PHP 中做这样的事情
function doSomething() { /* ... */ }
while(my_array[] = doSomething()) { }
而不是使用额外的变量:while(myValue = doSomething()) { myArray[] = myValue; }
是否使用 while 块什么都不做?如果不是 - 为什么?
从技术上讲,大括号用于对while
正文中的多个语句进行分组。你甚至不需要它们。例如,以下是完全有效的 PHP 代码:
while ($my_array[] = doSomething());
^
如您所见,这使用分号来终止while
主体的语句(空语句)。演示
是的你可以。
$x = [];
while ($x[] = rand(0, 3)) { }
var_dump($x);
// array(4) {
// [0]=>
// int(4)
// [1]=>
// int(2)
// [2]=>
// int(2)
// [3]=>
// int(0)
// }
但是,如果您重新评估您要解决的问题,您可能会发现不同的方法或构造可能会证明更好,并且不需要将while
构造简化为这个目的。