PHP构建类(变量和命名空间)的问题


PHP Problems with constructing classes (variables and namespaces)

我刚刚遇到以下问题。我正试图构造一个类,但它不起作用。当我构造类时,它使用名称空间和变量,因为变量必须放在反斜杠后面(对于名称空间),所以会出现错误。下面是定义类的示例代码;

$className = 'Help';
$controller = new 'controller'$className;

类名是在一个变量中定义的,在上面的示例代码中,我刚刚将其设置为"Help"。当构造类时,它前面有'controller',这是因为它在那个命名空间中。如果我去掉名称空间的东西,那么它就有;

$controller = new $className;

它确实有效。这个问题可能是因为变量前面有一个反斜杠,其中包含要构造的类名。我无法在代码的开头添加use controller;,因为包含该类的文件是在构造函数中加载的,并且在加载文件后会立即构造该类。use函数只能在文件的开头使用,我认为不能在方法内部使用。

我希望有人能帮我,。

提前感谢,Tim Visée

您的第一个示例是无效语法。相反,你需要这样的东西:

$className = ''controller'Help';
$controller = new $className();

将完全限定类名设置为变量,并使用该变量实例化新对象:

$className = ''controller'Help';
$controller = new $className;