Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 无法将类的命名空间路径作为变量计算_Php_Class_Object_Path_Namespaces - Fatal编程技术网

Php 无法将类的命名空间路径作为变量计算

Php 无法将类的命名空间路径作为变量计算,php,class,object,path,namespaces,Php,Class,Object,Path,Namespaces,当我硬编码一个名称空间和类时,一个新对象被实例化。但无论我以何种方式尝试将名称空间实例化为变量,该类都“不存在”。 如何让PHP动态计算类的整个路径 class Export { public function exportIt($appPath) // $appPath = 'theApp' { $appClass = 'thisClass'; $appObj = new $appPath . '\\' . $appClass(); // <-- Says cl

当我硬编码一个名称空间和类时,一个新对象被实例化。但无论我以何种方式尝试将名称空间实例化为变量,该类都“不存在”。 如何让PHP动态计算类的整个路径

class Export
{
  public function exportIt($appPath) // $appPath = 'theApp'
  {
    $appClass = 'thisClass';

    $appObj = new $appPath . '\\' . $appClass(); // <-- Says class does not exist :-(

    $appObj = new theApp\thisClass(); // <-- Instatiates OBJECT! :-)
  }
}
类导出
{
公共函数exportIt($appPath)/$appPath='theApp'
{
$appClass='thisClass';

$appObj=new$appPath.'\\'.$appClass();//它说哪个类不存在?我的钱在app
上,你被
new
操作符咬到了,该操作符的优先级高于该语句中的任何其他操作符

您是否尝试过:

$appFullPath = $appPath . '\\' . $appClass;
$appObj = new $appFullPath();

我试过了,还有很多其他的方法,谢谢Greg。听起来好像没有办法让它像这样工作。它是运算符优先于变量?它不优先于类对象?我尝试了完全类似的方法,虽然显然不是针对你的特定类,但它工作得很好。如果它不适合你,那么就没有了还有一些其他问题。也许
appPath
应该以“\”开头?