在 PHP 中,從變數實例化類別的能力在各種場景中都非常有用。人們可以透過有爭議的 eval() 方法之外的方法來實現此功能。
問題:
考慮以下程式碼:
$var = 'bar'; $bar = new {$var}Class('var for __construct()'); //$bar = new barClass('var for __construct()');
This程式碼旨在使用變數作為類別名稱來實例化一個類別。但是,語法不正確。
解決方案:
要實現不使用eval() 的動態類別實例化,可以先將類別名稱儲存在變數中:
$classname = $var.'Class'; $bar = new $classname("xyz");
在這個方法中,類別名稱被指派給一個變數($classname),然後使用建立該類別的新實例$classname 變數。
用法:
此技術通常在工廠模式中使用,它允許在不指定確切類別的情況下建立物件。它還可以在依賴注入框架中找到應用程序,其中類別名稱可以在運行時動態生成或配置。
要進一步了解,請參閱 PHP 中的命名空間和動態語言功能的文件。
以上是如何在 PHP 中不使用 eval() 實作動態類別實例化?的詳細內容。更多資訊請關注PHP中文網其他相關文章!