if ( is_array( $u ) ) {
while( list( $key ) = each( $u ) ) {
$u = $u[$key];
break;
}
}
Run Code Online (Sandbox Code Playgroud)
当我在 laravel 框架上运行它时,我的 php 版本是 7.2 我得到了这个错误
The each() function is deprecated. This message will be suppressed on further calls
Run Code Online (Sandbox Code Playgroud)
我发现那是我必须将每个更改为 foreach 在此处输入链接描述
任何人都将代码更改给我以在 php 7.2 上工作,谢谢
正如 PHP7.2 所说,我建议使用foreach()function 作为已弃用的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 ) {...}
Run Code Online (Sandbox Code Playgroud)
请阅读:
while( list( $key ) = each( $u ) ) {
$u = $u[$key];
break;
}
Run Code Online (Sandbox Code Playgroud)
绝对没有理由在这里做一个循环。您只是从数组中获取第一个值并覆盖数组。可以使用 current() 在一行中重写上述循环,它将从数组中拉出当前值(如果数组的指针未更改,则为第一个值):
$u = current($u);
Run Code Online (Sandbox Code Playgroud)