记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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • pycharm 激活码 2021【2021.10最新】

    (pycharm 激活码 2021)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~2JTX0APX6F-eyJsaWNlbnNlSWQiOi…

    2022年3月30日
    43
  • Qt quick性能提升[通俗易懂]

    Qt quick性能提升[通俗易懂]Qtquick性能优化使用时间驱动  避免定时轮询;  使用信号槽形式;使用多线程  C++;  QMLWorkerScript元件;使用QtQuickCompiler  只需要再PRO文件中添加一行:CONIFG+=qtquickcompiler避免使用CPU渲染的元件;  Canvas、QtCharts;使用异步加载  图片异步加载…

    2022年9月20日
    0
  • 什么是第一,第二,第三范式

    什么是第一,第二,第三范式我们在数据库表设计时,经常说,某某表要遵循第三范式。下面通过实例介绍第一,第二,第三范式第一范式所谓第一范式,就是数据表的列不可再分。看下面数据表,对于选课列明显是可以再分的,所以它是违反第一范式的。学号姓名选课10001张三数学,语文,英语10002

    2022年5月23日
    37
  • mongoVue激活成功教程版「建议收藏」

    mongoVue激活成功教程版「建议收藏」下载地址:https://pan.baidu.com/s/1mhPejwO#list/path=%2Fwindows%20soft

    2022年8月21日
    3
  • opengl 透视投影矩阵_matlab投影函数

    opengl 透视投影矩阵_matlab投影函数图形学惯例下的平行投影矩阵推导首先,确定我们使用以下惯例:将视图坐标系中的顶点Pe变换到NDC坐标系中的顶点Pn。视图坐标系使用右手坐标系,NDC也使用右手坐标系。NDC范围为-1<=x<=1,-1<=y<=1,-1<=z<=1NDC和屏幕的对应关系为:x=1的点在屏幕右边,x=-1在左边;y=1在顶部,y=-1在底部;z=1的点距…

    2022年9月1日
    0
  • 关于random()跟nextInt()方法过不了公司安评测试「建议收藏」

    关于random()跟nextInt()方法过不了公司安评测试「建议收藏」手上的项目最近过不了公司的安平测试,报告处理啊之后,发现问题竟然处在nextInt()跟random()两个方法上面,具体不通过的原因如下:大概意思就是,这两个系统自带的方法会导致安全信息泄露,因此禁止。然后我就进去查看具体代码,发现如下:没有进行任何的安全加密,只是验证码生成随机遮掩线条。安评测试的逻辑估计是只要调用这个方法都是不安全的,呵呵!!崩溃了,在线等C友建议如何改善了!…

    2022年7月21日
    19

发表回复

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

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