Sunyanzi
2013-12-13 00:05:28 +08:00
我补充一下楼上二位的答案 ...
php 没有引入 List Comprehension 而是引入了更好的 Generator Expression ...
事实上这也是 php 5.5 的核心功能 ... 它拥有比列表解析更好的内存使用方式和更高的效率 ...
列表这个东西有的时候并不像你想象那样 ...
放开只有数组和迭代器可以遍历的思想 ... 试着去迎接新事物吧 ...
当然如果你问的有是什么简单的语法可以生成一个能够使用 Array 类函数直接操作的数组的话 ...
答案是没有 ...
最后 ... 根据你在顶楼的代码给你写了个例子如下 ... 不难 ... 看不懂的话我再解释好了 ...
<?php
function arr() {
foreach( range( 1, 5 ) as $i ) if ( $i > 0 ) yield $i;
}
/* arr() is NOT an array but a generator ... */
foreach( arr() as $a ) echo $a;