0

它知道可以用get_class($variable). 问题是 my$object实际上是一个包含变量名的字符串。

所以:

$object = new MyClass();

$var = '$object';

$class = get_class($var); // obviously fails

我不能使用get_class($object),因为我无法直接访问该变量(我正在使用 token_get_all()解析 PHP 表达式$var来生成字符串)

我尝试使用eval(sprintf('return get_class(%s);', $var)),但它不起作用,因为变量在 eval 的范围内似乎未定义:(

有没有办法做到这一点?

我需要知道该类才能将其传递给 ReflectionMethod,这样我才能获取有关方法的信息(PHP 表达式中的下一个元素)。


NVM:我很确定这是不可能的。不好意思问了:)

4

3 回答 3

1

你可以做

$var = new $object();

于 2012-07-24T14:15:26.093 回答
1

尝试使用变量变量: http: //php.net/manual/en/language.variables.variable.php

就像是:

$var = 'object';
$class = get_class( $$var );
于 2012-07-24T14:15:32.230 回答
1

您可以执行以下操作

$ref = ltrim($var, '$');
get_class($ref);
于 2012-07-24T14:15:41.707 回答