【发布时间】:2013-07-17 20:17:59
【问题描述】:
是否可以获取作为类的实例变量的值,而需要获取的值只是一个字符串?我得到的字符串是 "$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,但在这种情况下,我试图只传递我想要测试的变量并得到简短的值。
【问题讨论】:
-
你的班级是什么样的?我认为您要做的事情应该比这更简单。
-
显示的代码太多了,我确实总结了上面代码片段中发生的事情。
-
所以我假设 $user 是用户类的对象。像 $user = new User() 这样的东西。如果 Prop 在用户类中声明为公共,那么您应该能够通过执行以下操作来获取值: var_dump($user->Prop)
-
是的,但我只有一个值 string(11)"$user->Prop" 并且想在这种情况下评估为 3。
-
啊,原来 eval 函数会返回一个值,但我必须使用 return 所以在这种情况下,如果我收到 "$user->Prop" 我必须做 $a = " /$用户->道具"; $val = eval("return $a;");
标签: php eval dynamic-class dynamic-properties