0

是否可以获取作为类的实例变量的值,而需要获取的值只是一个字符串?我得到的字符串是“$user->Prop”可以说,我想 eval() 这个字符串来获取值,但似乎 eval 函数不知道 $user 即使它是一个实例多变的。

$user->Prop = 3;
$a = "user->Prop";
$val = eval($$a); //how to get 3 with this string?

我知道我能做到

$prop = "prop";
$user->$prop;

并得到 3,但在这种情况下,我试图只传递我想要测试的变量并简而言之获取值。

4

3 回答 3

3

eval不返回评估结果,如果要将属性值存储在 中$val,则必须将其包含在评估字符串中:

$a = 'user->prop';
$eval = '$val = $'.$a.';';

eval($eval);
var_dump($val);
于 2013-07-17T20:26:00.663 回答
2

这不起作用,因为您无法->动态表示。

$user->Prop = 3;
$a = "user->Prop";
$val = ${$a};

但是你可以这样做:

$user->Prop = 3;
$a = "user";
$b = "Prop";
$val = ${$a}->$b;
于 2013-07-17T20:26:09.557 回答
0

原来如果我有一个 string(11)"$user->Prop" 并且它存储在 $a 我需要做的是:

$val = eval("return $a;");

需要更仔细地阅读文档......不过我想写下来很好。

于 2013-07-17T20:34:36.420 回答