记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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 开心农场最新外挂助手下载[通俗易懂]

    开心农场最新外挂助手下载[通俗易懂] “开心农场”辅助外挂使用说明:1.解压缩文件(本文件完全解压后只有876KB不占用多余空间)2.打开 这个图标www.vi128.com3.这时,在右下角会出现这个标志 然后双击它4.出现一个新的笔记5.在笔记主框内写上好友的名字(如果不好找也可以再加上编号)和将要成熟的作物6.写好后点击 右上角这个蓝色小闹钟的图标 7…

  • CAS单点登录(一)——初识SSO

    CAS单点登录(一)——初识SSO前言:其实好早就想把CAS的这一套知识整合一下,在工作上也应用到了这块,只是最近才在工作上接触到CAS,所以刚好把这些知识总结一下。这块可能是一个比较大的模块知识点,所以会有多篇文章进行逐一展开,笔者会尽量抽空更新,当然如果文章中存在错误,期望大家指出。一、初识CAS首先我们来说一下CAS,CAS全称为CentralAuthenticationService即中央认证服务,是一个企…

  • 在vue3 中使用echarts

    在vue3 中使用echarts1,安装echartsnpminstallecharts–save有cnpm的可以cnpm安装2,在main.js中导入import{createApp}from’vue’importAppfrom’./App.vue’import*asechartsfrom’echarts’constapp=createApp(App).mount(‘#app’)app.echarts=echarts3,在需要使用的页面,定义div&lt

    2022年10月25日
  • [Java Web – 3A] – Spring MVC开发注意事项

    [Java Web – 3A] – Spring MVC开发注意事项

  • 深入浅出MFC—Frame1[通俗易懂]

    深入浅出MFC—Frame1[通俗易懂]#includeclassCObject{public: CObject() { printf(“CObjectConstructor\n”); } ~CObject() { printf(“CObjectDestructor\n”); }};classCCmdTarget:publicCObject{publ

  • sublime插件合集「建议收藏」

    sublime插件合集「建议收藏」本文系转载,原文地址:http://www.xuanfengge.com/practical-collection-of-sublime-plug-in.html版权归 轩枫阁 所有本文标题:实用的sublime插件集合–sublime推荐必备插件转载请务必注明出处,小生将不胜感激,谢谢!喜欢本文或觉得本文对您有帮助,请分享给您的朋友^_^

发表回复

您的电子邮箱地址不会被公开。

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