PHP中可变变量名,再数组,老提示变量没设置,哪里有问题,瞅瞅

这个系统 发布于 2017/03/20 16:04
阅读 170
收藏 0
PHP
                        global $global_name;
                        $group_name = 'A'.$aadata[13];
                        $global_name = $$group_name;
                        $global_name = array();
                        $global_name['time'] = $aadata[7];
                        $global_name['id'] = $aadata[1];
                        var_dump ($global_name);

 

加载中
0
这个系统

是语法没用对吗?

0
昙花一现
昙花一现

双$符号是什么鬼

Narky
Narky
双$$的意思是把前一个变量的值作为变量名,比如 $a = 'b',那$$a 就等于 $b
0
dyfire
dyfire

可以尝试用extract,不推荐$$的写法

这个系统
extract好像只能将数组键名作为可变变量名,不能将数组键值作为可变变量名。 老师,有没有demo代码,瞅瞅
0
萧雨o
萧雨o
global $global_name;
$group_name = 'A' . $aadata[13];  // 从截图推断 $aadata[13] = 801
$global_name = $$group_name;      // 这行可以看作 $global_name = $A801
// 从上下文看,$A801 并未定义,所以 php抛出一个Notice:未定义的变量
// 所以,可以看出,你的php环境部署挺正常的
// php运行也挺正常的呢


// 好吧,这里又重新赋值一个空数组给 global_name 变量,初始化么。
// 那么上面怎么赋值都没用了。而且Notice可以关闭掉,不影响下面的执行
$global_name = array();  
$global_name['time'] = $aadata[7];
$global_name['id'] = $aadata[1];
var_dump ($global_name);

// 所以,没能理解为什么会有这种写法,也许有特殊含义吧( ̄▽ ̄)"

 

这个系统
谢谢萧雨o,目的是定义$aadata[13]为全局变量,因为值是数字所以在前面加A,然后为全局变量$aadata[13]赋数组time和id。 去掉$global_name = array();也会有notice提示,肯定是哪个地方没搞对,有没有时间写个简单的demo 代码,
返回顶部
顶部