在 PHP 8.2 中,动态属性已弃用。我目前正在 PHP 8.1 上开发,希望代码也能在 PHP 8.2 上运行。
在链接页面的底部附近,它说:
为了跨多个 PHP 版本的一致性,可以通过编程方式在旧版本中发出弃用。
谁能解释一下如何做到这一点?在 PHP 8.1 上开发时,我希望看到任何使用动态属性的弃用通知。
我不知道怎么做,所以我没有尝试过任何具体的东西。
你可以像这样使用魔术方法__set:
class User
{
public function __set($name, $value) {
trigger_error("Deprecated: Creation of dynamic property User::$name is deprecated in " . __FILE__ . " on line " . __LINE__);
}
}
因为在将数据写入不存在的属性时会运行此方法。
默认情况下 trigger_error() 生成警告。