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

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

大家好,又见面了,我是全栈君。

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

 例子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);
        }

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中对我有用的例子。

(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;
    }

 

 

参考:php 7.2 each() function is deprecated

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/111677.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 永远用小的结果集驱动大的结果集

    永远用小的结果集驱动大的结果集

    2021年9月13日
    107
  • 小米9刷面具和模块[通俗易懂]

    小米9刷面具和模块[通俗易懂]准备工作:没解BL锁的需要先解锁1.按住音量键下和关机键进入Fastboot模式连接电脑2.这里使用奇兔刷机连接手机,中途会自动安装驱动,若安装驱动失败可使用驱动精灵或驱动人生手动安装驱动.安装完驱动后奇兔刷机会显示已经连接到手机开启root:1.下载twrphttps://twrp.me/xiaomi/xiaomimi9.html2.1.把Magisk-v20.4.zip和magisk-taichi

    2022年6月4日
    114
  • msf win10漏洞_Kali对Windows2008/7的MS17010漏洞测试(MSF自带模块)

    msf win10漏洞_Kali对Windows2008/7的MS17010漏洞测试(MSF自带模块)Kali-TheVulnerablityofMS17010forWindowsServer2008R20x01说明其实这个MSF自带的exp模块还是挺让人伤脑筋的,因为它支持的OS并不是很多,也就WindowsServer2008和Win7能用一下,比他们版本低的xp/2003以及比他们版本高的8/2012都不可用,但是纯粹对于Win2008/7而言,这个方案还是比较方便…

    2022年5月15日
    60
  • VMware中的ubuntu虚拟机开机黑屏,无法打开桌面

    昨天因为在虚拟机中搭环境,崩了,可能是因为脚本错误什么的原因,或者误删除了什么东西的原因,导致,虚拟机重启之后一直处于黑屏状态。如下图:然后百度了很多解决方法,都不成功,后来有大佬指点用快照恢复,但是,我发现一个残酷的事实,我之前没有使用过快照,所以不可行,所以只好重装了。信任IT界名言“没有什么是重装系统解决不了的”。可能只是我的这个不行,但是整理了一下网上的方法,码文,纪念一下…

    2022年4月6日
    1.1K
  • vista激活工具下载_windows7激活工具免费

    vista激活工具下载_windows7激活工具免费转贴自http://hi.baidu.com/guoguo6688/blog/item/9028ab452f26ee3e879473bf.html激活成功教程激活Vista的利器——集三种激活成功教程方法于一身的激活成功教程工具(经测试:成功激活并通过正版验证)——Vista自动激活工具(综合版):该工具以自动运行方式,集成了截止目前成功的激活成功教程成果,包括:MKS服务器激活/加载设备驱动、模拟OEM信息激活/软

    2022年10月12日
    4
  • 虚拟存储管理技术概念_虚拟内存管理

    虚拟存储管理技术概念_虚拟内存管理页内虚拟存储器页的大小是固定的段式虚拟存储器段的大小不固定段页式虚拟存储器把程序按逻辑结构分段,每段再划分为固定大小的页,主存空间也划分为大小相等的页,程序对主存的调入、调出仍以页为基本传送单位。每个程序对应一个段表,每段对应一个页表。虚拟地址:段号+段内页号+页内地址…

    2022年9月26日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号