如何解决laravel项目本地环境PHP7报错each函数废弃问题,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
10余年建站经验, 成都网站设计、成都做网站客户的见证与正确选择。创新互联提供完善的营销型网页建站明细报价表。后期开发更加便捷高效,我们致力于追求更美、更快、更规范。
例子1:
php7.1写法
if ( is_array( $u ) ) { while( list( $key ) = each( $u ) ) { $u = $u[$key]; break; } }
改为php7.2写法
if ( is_array( $u ) ) { $u = current($u); }
foreach()
function as a substitute of deprecated
each()
. Here I let a couple of examples that works to me in Wordpress.----正如PHP7.2所说,我建议使用foreach()函数来替代已弃用的each()。这里我举几个在Wordpress中对我有用的例子。
(OLD) while ( list( $branch, $sub_tree ) = each( $_tree ) ) {...}(NEW) foreach ( (Array) $_tree as $branch => $sub_tree ) {...} (OLD) while ( $activity = each( $this->init_activity ) ) {...}(NEW) foreach ( $this->init_activity as $activity ) {...} (old)while(list($file, $info) = each($this->images))(new)foreach($this->images as $file => $info) { // ...}
例子2
16548 while (list($id, $name) = each($attr_array[1])) { //7.1 I replaced the line with the next code in both lines and it worked,替换为如下 foreach($attr_array[1] as $id => $name) { //7.2
例子3:我的例子:支付过程中生成签名时出现错误
public function createLinkString($param) { $arg = ""; //数组排序 ksort($param); reset($param); //7.1写法 /*while (list ($key, $val) = each($param)) { if ($key == "sign") continue; if (!empty($key)) { $arg .= $key . "="; } if (is_array($val)) { $arg .= $this->createLinkString($val) . "&"; } else { $arg .= $val . "&"; } }*/ //7.2写法 foreach ($param as $key => $val) { if ($key == "sign") continue; if (!empty($key)) { $arg .= $key . "="; } if (is_array($val)) { $arg .= $this->createLinkString($val) . "&"; } else { $arg .= $val . "&"; } } //去掉最后一个&字符 $arg = substr($arg, 0, strlen($arg) - 1); return $arg; }
总之,一句话,php7.2版本中each函数废弃了不能用,直接用foreach替换就ok了。
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注创新互联行业资讯频道,感谢您对创新互联的支持。