PHP 生成器的使用
-
PHP經常用的語法
function nums() { $array = array(); for ($i = 0; $i < 10000; ++$i) { $array[]= $i; } return $array; } foreach (nums() as $v){ var_dump($v); };
安裝原來的寫法,return多個迭代之後的值,需要放進數組裏面,然後return返回。如果這個數組足夠大,所佔用的內存也比較大,和空間相比,內存還是比較珍貴的,特別在服務器上。
-
生成器的用法
function nums2() { for ($i = 0; $i < 10000; ++$i) { yield $i; } } foreach (nums2() as $v){ var_dump($v); };
生成器最大的不同就是使用了yield,PHP每次調用都是調用生成器的方法代碼,我覺得是佔用了空間,而內存佔用的情況變小了,在大的迭代上,使用生成器真的可以優化很多內存,小數的迭代性能上沒什麼區別。