php動態建立資源
最近升級php8碰到的另一個問題,動態建立資源雖然已棄用,不過有保留一個特殊的宣告可以啟用這個動作。
錯誤程式
下面這段程式放到php8後會出現的錯誤訊息是
Deprecated: Creation of dynamic property XXXXXXX is deprecated in
$config['email']['Host'] = '127.0.0.1';
$config['email']['From'] = '';
#... 其他設定
//動態建立
foreach($config as $key => $data)
{
$this->$key = $data;
}
解決方法
雖然還可以繼續用,不想處理的話也只要關閉錯誤就好,不過有查到解決方式,在使用前加入以下宣告就好,個人是直接加入到有使用此功能的php檔案最上方。
#[AllowDynamicProperties]
參考資料
https://www.php.net/manual/en/class.allowdynamicproperties.php