首頁 >後端開發 >php教程 >如何在 PHP 中動態實例化類別而不使用 eval()?

如何在 PHP 中動態實例化類別而不使用 eval()?

Linda Hamilton
Linda Hamilton原創
2024-11-20 12:42:111014瀏覽

How to Dynamically Instantiate Classes in PHP without Using eval()?

在PHP 中透過動態變數實例化類別

從變數名稱動態實例化類別在PHP 中是一項很有價值的技術。考慮以下情境:

$var = 'bar';
$bar = new {$var}Class('var for __construct()'); //$bar = new barClass('var for __construct()');

如何在不訴諸備受爭議的 eval() 函數的情況下實現這一目標,而您寧願避免使用該函數?

變數賦值與實例化

解決方案在於建立一個保存類別名稱的變量,然後使用$ 變數運算子實例化該類別:

$classname = $var . 'Class';

$bar = new $classname("xyz");

這種技術可讓您動態實例化類別基於變數值,這在工廠模式等模式中非常有用。

更多注意事項

要深入研究此主題,請參閱有關命名空間和的 PHP 文件動態語言功能,提供更多上下文和範例。

以上是如何在 PHP 中動態實例化類別而不使用 eval()?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn