是否可以获取作为类的实例变量的值,获取所需的值只是一个字符串?我得到的字符串是“$ 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,但在这种情况下,我试图只传入我想测试的变量并简单地获取值。
答案 0 :(得分:3)
eval
不返回计算结果,如果要在$val
中存储属性值,则必须将其包含在计算字符串中:
$a = 'user->prop';
$eval = '$val = $'.$a.';';
eval($eval);
var_dump($val);
答案 1 :(得分:2)
这不会起作用,因为您无法动态代表->
。
$user->Prop = 3;
$a = "user->Prop";
$val = ${$a};
但你可以这样做:
$user->Prop = 3;
$a = "user";
$b = "Prop";
$val = ${$a}->$b;
答案 2 :(得分:0)
如果我有一个字符串(11)“$ user-> Prop”并且它存储在$ a中我需要做的是:
$val = eval("return $a;");
需要更仔细地阅读文档...我想这是好的写作。