使用字串在PHP 中動態建立實例
在PHP 中,在某些情況下您可能需要使用下列指令建立類的實例一個字串,而不是使用長的switch 語句在多個類別之間進行選擇。例如,假設我們有以下兩個類別:
class ClassOne {} class ClassTwo {}
我們收到一個可以是「One」或「Two」的字串。我們可以使用以下程式碼動態建立一個實例,而不是使用像這樣的switch 語句:
switch ($str) { case "One": return new ClassOne(); case "Two": return new ClassTwo(); }
我們可以使用以下程式碼動態建立一個實例:
$str = 'One'; $class = 'Class'.$str; $object = new $class();
$class 變數是透過連接字串'Class 動態建構的' 的值為$str.然後,我們使用new運算子建立該類別的實例。這種技術允許我們根據字串輸入動態創建類別的實例。
透過提供完全限定的類別名,可以對命名空間使用相同的方法:
$class = '\Foo\Bar\MyClass'; $instance = new $class();
此外,PHP支援使用以下語法動態呼叫變數函數與方法:
$func = 'my_function'; $parameters = ['param2', 'param2']; $func(...$parameters); // calls my_function() with 2 parameters; $method = 'doStuff'; $object = new MyClass(); $object->$method(); // calls the MyClass->doStuff() method. // or in one call (new MyClass())->$method();
但是,需要注意的是,動態建立變數通常是一種不好的做法,並且應盡可能避免。在大多數情況下,數組是更好的選擇。
以上是如何使用字串在 PHP 中動態建立類別實例?的詳細內容。更多資訊請關注PHP中文網其他相關文章!