【发布时间】:2021-04-20 01:08:36
【问题描述】:
我正在搞乱PHP 中的新Attributes(又名“注释”),我遇到了这个烦人的问题,Netbeans 12.2 无法识别我的有效PHP 8.0 代码。我已经在我的本地机器上测试了它,也在这里:https://sandbox.onlinephpfunctions.com/。
代码似乎编译得很好。其他 PHP 8.0 函数也可以在 IDE 中工作(...嗯,它是相同的二进制文件)。我可以以某种方式修复或消除此错误吗?因为它会将我的整个工作区标记为错误。
<?php
#[Routing('hello')]
class A {
public function __construct() {}
}
#[Routing('world')]
class B {
public function __construct() {}
}
class Route {
public function __construct(public string $name) {}
}
#[Attribute(Attribute::TARGET_CLASS)]
class Routing {
private static $routes = [];
public function __construct(public string $name) {
static::add(new Route($name));
}
private function add($route) {
static::$routes[] = $route;
}
public static function getRoutes() {
return static::$routes;
}
}
$rA = new ReflectionClass(A::class);
$rB = new ReflectionClass(B::class);
$attributeA = $rA->getAttributes()[0];
$attributeB = $rB->getAttributes()[0];
$a = $attributeA->newInstance();
$b = $attributeB->newInstance();
print_r($a);
print_r($b);
print_r($a::getRoutes());
我猜这是一个错误。我可以使用旧语法,但这只是一种解决方法,以防我找不到解决方案。
问题:
我怎样才能摆脱这个错误消息,或者我的代码中是否缺少某些东西,应该存在?
【问题讨论】:
标签: php netbeans syntax-error settings php-8