以编程方式发出旧版本中动态属性的弃用

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

在 PHP 8.2 中,动态属性已弃用。我目前正在 PHP 8.1 上开发,希望代码也能在 PHP 8.2 上运行。

在链接页面的底部附近,它说:

为了跨多个 PHP 版本的一致性,可以通过编程方式在旧版本中发出弃用。

谁能解释一下如何做到这一点?在 PHP 8.1 上开发时,我希望看到任何使用动态属性的弃用通知。

我不知道怎么做,所以我没有尝试过任何具体的东西。

php deprecated
1个回答
0
投票

你可以像这样使用魔术方法__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() 生成警告。

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