PHP 中使用字符串动态类实例化
在 PHP 中,可以使用表示类的字符串创建类的实例姓名。这消除了在处理多个类时使用冗长的 switch 语句的需要。
考虑以下示例:
class ClassOne {} class ClassTwo {} $str = 'One';
而不是使用 switch 语句:
switch ($str) { case "One": $object = new ClassOne(); break; case "Two": $object = new ClassTwo(); break; }
您可以使用字符串动态创建实例,如下所示:
$class = 'Class' . $str; $object = new $class();
此语法构造完整的类名(例如“ClassOne”)并实例化它。如果您的类位于命名空间中,请使用完全限定名称:
$class = '\Foo\Bar\MyClass'; $instance = new $class();
PHP 也将此功能扩展到变量函数和方法:
$func = 'my_function'; $func(...$parameters); // Calls my_function() with parameters $method = 'doStuff'; $object = new MyClass(); $object->$method(); // Calls Myclass->doStuff() (new MyClass())->$method(); // Calls Myclass->doStuff() in one line
虽然您可以使用字符串创建变量,这被认为是不好的做法,应该避免使用数组。
以上是如何使用字符串动态实例化 PHP 类?的详细内容。更多信息请关注PHP中文网其他相关文章!