【问题标题】:PHP how to dynamically instantiate a classPHP如何动态实例化一个类
【发布时间】:2017-06-09 02:47:52
【问题描述】:

我是 PHP 新手,我尝试像这样动态实例化一个类:

$var = new \App\$str;

但我不断收到此错误:

unexpected  variable $str after '\', expected: identifier.

我知道这是可能的,但我只是不确定确切的语法是什么,我发现的所有示例都没有我需要的 \App\ 部分。

【问题讨论】:

  • 试试这个$var = new \App\{$str};

标签: php class dynamic instantiation


【解决方案1】:

new 运算符接受类名标识符或包含类名的变量,但不能混合使用。

由于您的完全限定类名的一部分是未知的(动态的),您应该将所有部分放入一个字符串变量中:

$class_name = 'A';
$namespace = '\\App';
$fully_qualified_class_name = "$namespace\\$class_name";
$var = new $fully_qualified_class_name;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-16
    • 1970-01-01
    • 2011-12-18
    • 2014-12-14
    • 2014-01-03
    • 1970-01-01
    • 2014-01-26
    相关资源
    最近更新 更多