zoukankan      html  css  js  c++  java
  • 记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

    赞赏码

    非学,无以致疑;非问,无以广识

  • 相关阅读:
    deepin系统换软件下载源&商店卡死刷新空白问题解决
    php数组和json数组之间的互相转化
    php 获取数组个数的方法
    php 三种文件下载的实现
    win10激活
    deepin/linux安装exe
    deepin连接windows
    deepin升级微信
    deepin安装.net core
    在Deepin 15.9下安装Wine 4.0
  • 原文地址:https://www.cnblogs.com/lxwphp/p/15452705.html
Copyright © 2011-2022 走看看