记laravel项目,本地环境PHP7.1,线上PHP版本7.2,报错each函数废弃问题

举报
lxw1844912514 发表于 2022/03/27 01:43:53 2022/03/27
【摘要】 the each() function is deprecated. this message will be suppressed on further calls laravel   例子1: php7.1写法 if ( is_array( $u ) ) { while( l...

the each() function is deprecated. this message will be suppressed on further calls laravel 

 例子1:

php7.1写法


  
  1. if ( is_array( $u ) ) {
  2. while( list( $key ) = each( $u ) ) {
  3. $u = $u[$key];
  4. break;
  5. }
  6. }

改为php7.2写法


  
  1. if ( is_array( $u ) ) {
  2. $u = current($u);
  3. }

As PHP7.2 says, I suggest to use 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中对我有用的例子。


  
  1. (OLD) while ( list( $branch, $sub_tree ) = each( $_tree ) ) {...}
  2. (NEW) foreach ( (Array) $_tree as $branch => $sub_tree ) {...}
  3. (OLD) while ( $activity = each( $this->init_activity ) ) {...}
  4. (NEW) foreach ( $this->init_activity as $activity ) {...}
  5. (old)while(list($file, $info) = each($this->images))
  6. (new)foreach($this->images as $file => $info) {
  7. // ...
  8. }

例子2 


  
  1. 16548 while (list($id, $name) = each($attr_array[1])) { //7.1
  2. I replaced the line with the next code in both lines and it worked,替换为如下
  3. foreach($attr_array[1] as $id => $name) { //7.2

例子3:我的例子:支付过程中生成签名时出现错误 


  
  1. public function createLinkString($param)
  2. {
  3. $arg = "";
  4. //数组排序
  5. ksort($param);
  6. reset($param);
  7. //7.1写法
  8. /*while (list ($key, $val) = each($param)) {
  9. if ($key == "sign") continue;
  10. if (!empty($key)) {
  11. $arg .= $key . "=";
  12. }
  13. if (is_array($val)) {
  14. $arg .= $this->createLinkString($val) . "&";
  15. } else {
  16. $arg .= $val . "&";
  17. }
  18. }*/
  19. //7.2写法
  20. foreach ($param as $key => $val) {
  21. if ($key == "sign") continue;
  22. if (!empty($key)) {
  23. $arg .= $key . "=";
  24. }
  25. if (is_array($val)) {
  26. $arg .= $this->createLinkString($val) . "&";
  27. } else {
  28. $arg .= $val . "&";
  29. }
  30. }
  31. //去掉最后一个&字符
  32. $arg = substr($arg, 0, strlen($arg) - 1);
  33. return $arg;
  34. }

参考:php 7.2 each() function is deprecated

文章来源: blog.csdn.net,作者:lxw1844912514,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/lxw1844912514/article/details/108755853

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。