确定对象的类

时间:2012-07-24 14:11:33

标签: php class expression

它知道可以使用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表达式中的下一个元素)。


NVM:我很确定这是不可能的。对不起要问:)

3 个答案:

答案 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);