我在網(wǎng)上看到一個小的 php 測驗,其中包含以下代碼:$somevalue[[ 2 <=['-']=> 2][1]] = $somestring;我的問題是,作業(yè)前的部分是做什么的?$somevalue[[ 2 <=['-']=> 2][1]]<=看起來像比較運算符,但在這種情況下,它2與'-'?
2 回答

LEATH
TA貢獻1936條經(jīng)驗 獲得超7個贊
PHP 的數(shù)組初始化語法如下所示:
$arr = [ key => value ];
所以在這部分:
2 <=['-']=> 2
'key' 是表達式的結(jié)果2 <= ['-']
,根據(jù)本頁,它的計算結(jié)果為true
(數(shù)組總是大于您所比較的值,除非它是另一個數(shù)組)。因為 PHP 數(shù)組鍵要么是整數(shù)要么是字符串,所以布爾結(jié)果被隱式轉(zhuǎn)換為 integer 1
,所以你最終得到:
1 => 2
所以簡化表達式:
[ 1 => 2 ][1]
將計算我們剛剛創(chuàng)建的數(shù)組的第二個元素(PHP 數(shù)組是基于 0 的),因此這將簡化為:
2
所以最后我們得到了:
$somevalue[2] = $somestring;

叮當(dāng)貓咪
TA貢獻1776條經(jīng)驗 獲得超12個贊
要理解這一點,您需要將語句分成幾部分,
echo 2 <=['-'];//return true
在此之后,聲明將是
$somevalue[[1 => 2][1]] = $somestring;
在這里您可以看到array
索引1
具有 values 2
。在這之后的最后一個索引是1
,[1 => 2]
它將從數(shù)組中返回2
,所以最后你將有
$somevalue[2] = $somestring;
- 2 回答
- 0 關(guān)注
- 219 瀏覽
添加回答
舉報
0/150
提交
取消