我有這個代碼作為我不能完全理解的例子。所以 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 關注
- 113 瀏覽
添加回答
舉報
0/150
提交
取消