它知道可以使用get_class($variable)
完成。
问题是我的$object
实际上是一个包含变量名的字符串。
这样:
$object = new MyClass();
$var = '$object';
$class = get_class($var); // obviously fails
我无法使用get_class($object)
,因为我没有直接访问该变量(我使用token_get_all()从parsing a PHP expression生成$var
字符串)
我尝试使用eval(sprintf('return get_class(%s);', $var))
,但它不起作用,因为变量在eval的范围内显示为未定义:(
有办法做到这一点吗?
我需要知道该类才能将它传递给ReflectionMethod,因此我可以获得有关方法的信息(PHP表达式中的下一个元素)。
答案 0 :(得分:1)
你可以做到
$var = new $object();
答案 1 :(得分:1)
尝试使用变量变量:http://php.net/manual/en/language.variables.variable.php
类似的东西:
$var = 'object';
$class = get_class( $$var );
答案 2 :(得分:1)
您可以执行以下操作
$ref = ltrim($var, '$');
get_class($ref);