php如何通过变量的变量引用外部变量?

在一个函数内部
$a="$b";
$b是外部变量
我想获取这个$b的值,b可以是其他的,具体是什么不确定
<?php
$a="xxfaxy";
function name($string){
//$string的值是字符串"$a"
//如何通过$string 来导入外部变量$a
//不能直接用global $a;因为$a是什么我不知道,传进来什么就是什么
}
name("$a");//传的就是字符串"$a"
?>

很不习惯PHP中的变量作用域,PHP中函数变量和全局是完全隔绝的,也就是无法相互访问。
比如下面这样:

复制代码代码如下:

$test = 123;
abc(); //这里什么都不输出,因为访问不到$test变量
function abc(){
echo($test);
}$test = 123;
abc(); //这里什么都不输出,因为访问不到$test变量
function abc(){
echo($test);
}

如果,你想在函数内部访问外部变量,你需要这样:

复制代码代码如下:

$test = 123;
abc(); //输出123
function abc(){
global $test;
echo($test);
}$test = 123;
abc(); //输出123
function abc(){
global $test;
echo($test);
}
也就是说,你使用全局变量就可以在函数内调用外部定义过的变量
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-08-16
变量传值不用加引号,直接name($a);就好了,function里面的$string就等于$a的值


<?php

$a="xxfaxy";
function name($string){
echo $string;

}

name($a);
?>
上例运行结果为

xxfaxy追问

变量传值不用加引号,直接name($a);就好了,我知道,可是我把变量名存到数据库了,现在取出来就是字符串。

第2个回答  推荐于2016-08-03
完全可以在里面用global 只不过要这样 把$a放在下面
function name($string){
global $a;
}

$a="xxfaxy";

name("$a");追问

我都说了不能直接用global $a;因为$a是什么我不知道,传进来什么就是什么
我再具体点:
"xxfaxy1");
$data2=array("name2"=>"xxfaxy2");

function name($string){
}
name("\$data1");//在函数里打印$string,应该输出字符串$data1
name("\$data2");//在函数里打印$string,应该输出字符串$data2

在函数内部,要能引用到外部变量$data1,或$data2,到底是哪一个,就看传的参数啊
?>

追答

我晕 帮你写一个吧

直接复制运行 看行不

追问

我要这个干嘛?你好好看我的描述

追答

完全看不懂

本回答被提问者和网友采纳
第3个回答  2012-08-15
用 globla 引用函数外面的变量.
global 还是globla 楼主百度吧.
相似回答