php中的双美元符号$$符号什么意思?
源码
foreach($_POST AS $_key=>$_value){
!ereg("^\_[A-Z]+",$_key) && $$_key=$_POST[$_key];
}
foreach($_GET AS $_key=>$_value){
!ereg("^\_[A-Z]+",$_key) && $$_key=$_GET[$_key];
}
追问:还一个问题,双引号内部的符号怎么理解,A-z是指A-Z中的字母,其他的符号呢? "^\_[A-Z]+"
答案:$$标识为可变变量,变量名可动态设置与使用.php code:
<?php
$a ='hello';
$hello ='world';
echo $a.','.$$a;
?>
以上输出'hello,world'.
$a普通变量值为hello,而$$a等同于 $($a),也就是把$a的变量值作为变量名,故结果自然输出hello,world
这样在数组应用中会出现一个问题,$a[0]与$$a[0]就分不清楚了,到底是想$a[0]作为一个变量还是$$a作为一个变量取出第一个索引值呢,正规一点的写法为 ${$a[0]}, ${$a}[0].前者把$a数组第一项作为可变变量,后者为可变变量的第一个索引值
比如 $a=b;
$b =7;
那么$$a == 7 为真
上边的俩个题好像是要把$_POST he $_GET 中的变量 移出来,移到全局变量范围内,不用再加$_POST['a'] 直接$a 就可以了
上一个:如何在win下配置apache+php+mysql
下一个:有C语言和C++基础自学PHP难度大不大?