为了账号安全,请及时绑定邮箱和手机立即绑定

为什么 array() 和 [] 在此示例中的行为不同

为什么 array() 和 [] 在此示例中的行为不同

PHP
呼啦一阵风 2022-06-11 10:15:32
我有这个代码作为我不能完全理解的例子。所以 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()在旧版本中替换。


查看完整回答
反对 回复 2022-06-11
  • 1 回答
  • 0 关注
  • 89 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号