Php 无法将类的命名空间路径作为变量计算
当我硬编码一个名称空间和类时,一个新对象被实例化。但无论我以何种方式尝试将名称空间实例化为变量,该类都“不存在”。 如何让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
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
应该以“\”开头?