1
我似乎无法解决此错误,当我尝试使用反射创建对象并每次都得到此错误时。PHP ReflectionClass - 致命错误:类名称必须是有效的对象或字符串
这里是我的代码:
public static function getMapper($klass) {
echo $klass;
if(class_exists($klass)) {
echo "YES!";
} else {
echo "NO!";
}
$mapperClass = new \ReflectionClass($klass);
print_r($mapperClass);
return new $mapperClass->newInstance();
}
第一回声打印 “\域\会员”。这是正确的,因为它是我通过的,并且它是我正在尝试创建Object的类。
接下来,回显打印“是”。这个课存在!
接下来,我通过$克拉斯到ReflectionClass和...
下的print_r打印:
ReflectionClass Object ([name] => domain\Member)
看到\域消失之前。可能是问题的一部分?
然后,当我调用newInstance()我得到错误。
致命错误:类名必须是一个有效的对象或在C字符串:\用户\扎克\ PhpstormProjects \ MyApp的\基地\ Registry.php上线53
所以我不知道是什么问题是。成员类存在于域名空间中。以防偶像中的某些东西是错误的,在这里;还没有太多:
<?php
namespace domain;
use base\Registry;
use domain\base\BaseMember;
class Member extends BaseMember {
/**
* @param $displayName
* @return Member
*/
public static function findMemberByDisplayName($displayName) {
return Registry::memberRepository()->findMemberByDisplayName($displayName);
}
呃,它总是那么小...... – user1513171