从 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;
}
.......
}
您可以添加
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 静态方法