在 PHP 中,您可能會遇到需要從變數的值實例化類別的場景。讓我們用一個例子來說明這一點:
$var = 'bar'; $bar = new {$var}Class('var for __construct()'); //$bar = new barClass('var for __construct()');
此方法嘗試建立 $var 變數指定的類別的實例。然而,PHP 本身並不支援這種語法。
要在不使用eval() 的情況下實現此目的,您可以使用變數來保存類別名稱:
$classname = $var . 'Class'; // e.g. $classname = 'barClass' $bar = new $classname('var for __construct()');
工廠模式中經常採用這種技術,用於集中類別創建並將其與創建過程解耦。在這種情況下,工廠類別將根據配置或其他參數動態建立所需的類別實例。
有關動態語言功能和命名空間的更多信息,請參閱以下資源:
以上是如何在 PHP 中從變數實例化類別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!