函数检查 isset 的 php 范围问题
我需要一个函数,该函数将字符串作为参数,然后检查是否设置了与该字符串命名相同的变量。
这有效...
$foo = 'foosuccess';
$property = 'foo';
if(isset($$property)){
echo $$property;
}
这不起作用,因为在 test() 中, $$property2 是错误的范围。
$huh = 'huhsuccess';
$huh = test("huh");
function test($property2){
if(isset($$property2)){
echo $$property2;
}
}
如何修复该函数,以便 $$property2 引用与调用者上下文相同的范围?这可能吗?
提前致谢....
I need a function that will take a string as an argument, then check to see if a variable named the same thing as that string is set.
This works...
$foo = 'foosuccess';
$property = 'foo';
if(isset($property)){
echo $property;
}
This doesn't, because within test(), $$property2 is the wrong scope.
$huh = 'huhsuccess';
$huh = test("huh");
function test($property2){
if(isset($property2)){
echo $property2;
}
}
How can I fix the function so $$property2 refers to the same scope as the caller's context? Is that possible?
Thanks in advance....
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
试试这个:
try this:
好吧,我想我已经为我的目的弄清楚了(如果有人感兴趣......)
ok, i think i figured it out for my purposes (if anyone's interested...)
这可以通过
eval()
来完成:This can be done with
eval()
: