从 PHP7.0 到 PHP 8.3 后出现“非静态方法”错误

问题描述 投票:0回答:1

从 PHP7.0 升级到 PHP8.3 后出现以下 PHP 错误消息

PHP Parse error:  syntax error, unexpected identifier "CLASS_MANAGEMENT", expecting "::"   

关于代码如下

<?php
  require_once('../includes/file/group.inc');

     foreach (CLASS_MANAGEMENT::getClassList() as $class_id) {
            $class_info = CLASS_MANAGEMENT::getClassInfo($class_id);
            $class_list[] = $class_info;
      }

有什么想法可以重写这个吗?

我尝试在类(group.inc)中添加“public static”修改我的函数,如下

class CLASS_MANAGEMENT
{

  public static function getClassList($class_id = null)
     {
            if (!$class_id) return;

            global $db;
            $query = $db->query("
                    select *
                    from    FILE
                    where   CLASS_ID = $class_id
                    ");
            $result = $db->fetchArray($query);
            return $result;
      }

   .......
}
ubuntu apache2 php-8.3
1个回答
0
投票

您可以添加

static
返回类型并重新运行脚本吗?

静态在

PHP 8.3
中成为强制要求。

<?php
class CLASS_MANAGEMENT {
    public static function getClassInfo($class_id = null): static {
        if (!$class_id) return;

        global $db;
        $query = $db->query("
                select *
                from    FILE
                where   CLASS_ID = $class_id
                ");
        $result = $db->fetchArray($query);
        return $result;
    }
}

阅读以下文章以获得更好的见解。 PHP 8.3 静态方法

© www.soinside.com 2019 - 2024. All rights reserved.