PHP 7 和 PHP5 foreach 迭代指针移动区别
<?php class a { private static $arrCfg = array( 300 =>array("money"=>1000,"tlen" =>300), 900 =>array("money"=>1200,"tlen" =>900), 1800 =>array("money"=>1500,"tlen" =>1800), 3000 =>array("money"=>2500,"tlen" =>3000), ); public function getNext($tlen = 0) { if(!isset(self::$arrCfg[$tlen])){ return array(); } foreach (self::$arrCfg as $key=>$val) { if($key == $tlen) { $next = next(self::$arrCfg); return $next; } next(self::$arrCfg); } } } $a = new a(); print_r($a->getNext(300)); ?>
PHP 7 下运行:
Array ( [money] => 1200 [tlen] => 900 )
PHP 5 运行:
Array ( [money] => 1500 [tlen] => 1800 )
<?php class a { private static $arrCfg = array( 300 =>array("money"=>1000,"tlen" =>300), 900 =>array("money"=>1200,"tlen" =>900), 1800 =>array("money"=>1500,"tlen" =>1800), 3000 =>array("money"=>2500,"tlen" =>3000), ); public function getNext($tlen = 0) { if(!isset(self::$arrCfg[$tlen])){ return array(); } foreach (self::$arrCfg as $key=>$val) { if($key == $tlen) { $next = current(self::$arrCfg); return $next; } // next(self::$arrCfg); } } } $a = new a(); print_r($a->getNext(300)); ?>
Array ( [money] => 1000 [tlen] => 300 )
PHP 5 运行:
Array ( [money] => 1200 [tlen] => 900 )
目测是 PHP5 foreach 循环数组指针下移一位,PHP7 则不移动。
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: PHP7和PHP5.6在foreach里面使用current的区别
- 下一篇: php7 新特性整理