PHP应用出现unexpected 'public'语法错误,寻求解决方案
解决PHP构造函数中"unexpected 'public' (T_PUBLIC)"错误
这个错误是因为你用了PHP 8.0才引入的构造函数属性提升语法,如果你的PHP版本低于8.0,PHP无法识别这种写法,就会抛出语法错误。
解决方法有两种:
- 升级PHP到8.0及以上版本,直接保留现有代码即可,属性提升是PHP8的官方特性,能自动把构造函数参数转为类属性。
- 若暂时无法升级PHP,把属性提升的写法拆成传统的类属性定义+构造函数赋值,修改后的代码如下:
class User { public const STATUS_ACTIVE = 'active'; public const STATUS_INACTIVE = 'inactive'; public string $username; public string $status; public function __construct(string $username, string $status = self::STATUS_ACTIVE) { $this->username = $username; $this->status = $status; } }
把原来构造函数参数前的public移到类里单独定义属性,再在构造函数内给属性赋值,低版本PHP就能正常解析了。
内容的提问来源于stack exchange,提问作者sebastien
相关产品推荐
相关产品推荐

