我越來越多地看到這種情況,但我不確定需要做什麼來阻止此警告:
已棄用:建立動態屬性...已棄用
這是我的課:
class database { public $username = "root"; public $password = "password"; public $port = 3306; public function __construct($params = array()) { foreach ($params as $key => $value) { $this->{$key} = $value; } } }
這就是我實例化它的方式。
$db = new database(array( 'database' => 'db_name', 'server' => 'database.internal', ));
這給了我兩個訊息:
已棄用:建立動態屬性資料庫::$database 已棄用
已棄用:建立動態屬性資料庫::$server 已棄用
該警告告訴您您嘗試設定的屬性未在類別頂部列出。
當您執行此命令時:
大致相當於這樣:
警告是類別定義中沒有行表示
$db->database
或$db->server
存在。目前,它們將動態建立為非類型化公共屬性,但將來,您需要明確聲明它們:
在一些罕見的情況下,你實際上想說「這個類別的屬性是我決定在運行時添加的任何屬性」;在這種情況下,您可以使用
#[AllowDynamicProperties]
屬性,如下圖所示:山東省濱州市***工資搭嘎發撒***哈
因此警告來自於新增動態類別屬性的建構子。如果您不必動態且真實地傳遞這些字段,那麼您似乎確實將簡單的事情變得過於複雜,那麼請像這樣嘗試。
您需要動態參數有什麼原因嗎?您也可以這樣做:
如果您提前新增參數,它們就不是動態的,您只是為已經存在的內容指派一個值。
現在應該可以正常工作,不會出現任何警告。
阿帆VS工作細胞宣傳部先擦VB