我有这个代码作为我不能完全理解的例子。所以 array() 和 [] 是完全一样的吗?有人说 [] 可能比 array() 稍微快一点,但这不是这个问题的主题。这是代码:function userLogin( $user, $return = null ) { [$user['username'],$user['password']] = [$user[0],$user[1]]; switch ($return) { case 1: return $user['username']; case 2: return $user['password']; default: return $user['username'].":".$user['password']; }}print userLogin(['admin','secretkey']);代码没有起到任何重要的作用,我知道,因为我把它作为一个例子放在那里。这个问题的主题是代码中的第三行,我正在使用短数组语法为数组内的用户名和密码分配一些值,但是当我尝试做同样的事情以使代码符合PHP 5.3 及以下版本。array($user['username'], $user['password']) = array($user[0], $user[1]);如果 array() 和 [] 相同,为什么 array() 在这种特定情况下不起作用?控制台输出短数组语法:admin:secretkey常规数组()函数:PHP Parse error: syntax error, unexpected '=' in C:\Users\Soricy\Desktop\fn.userLogin.php on line 3Parse error: syntax error, unexpected '=' in C:\Users\Soricy\Desktop\fn.userLogin.php on line 3编辑1:我完全知道使用:$user = array( 'username' => $user[0], 'password' => $user[1]);但我有时想内联。所以...我是否可能遗漏了PHP 文档中有关数组的内容,如果有,是什么?
1 回答

慕桂英4014372
TA贡献1871条经验 获得超13个赞
你把事情搞混了。
数组创建语法如下:
$a = array(1,2,3);
$b = [1,2,3];
$a === $b; //true
-- 在这种情况下array()和[]是完全相等的。
你的例子:
[$user['username'],$user['password']] = [$user[0],$user[1]];
-- 称为对称数组解构,它在 PHP 7.1 中被引入以替代list(). 它不能被替换,array()但可以list()在旧版本中替换。
- 1 回答
- 0 关注
- 89 浏览
添加回答
举报
0/150
提交
取消