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

Tags : php