我需要一个将字符串作为参数的函数,然后检查是否设置了与该字符串名称相同的变量。
这有效......
$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引用与调用者上下文相同的范围?这可能吗?
提前致谢....
答案 0 :(得分:0)
试试这个:
$huh = 'huhsuccess';
test("huh");
function test($property2) {
global $$property2;
if(isset($$property2)) {
echo $$property2;
}
}
答案 1 :(得分:0)
<?php
function test($s)
{
return isset($GLOBALS[$s]);
}
答案 2 :(得分:0)
//uncomment to get success
//$huh = 'huhsuccess';
$huh = test($huh);
echo $huh;
function test(&$property2) {
if(isset($property2)) {
return $property2;
} else {
return 'not set!';
}
}
die;
答案 3 :(得分:-1)
可以使用eval()
:
$foo = 'foosuccess';
$property = 'foo';
if(eval('isset($'.$property.')'){
echo $$property;
}