phpcn_u15822017-05-16 13:11:14
先上圖:
手冊說的很明白,把陣列中的值賦給一組變數。
你的問題:
如圖:
我並沒有聲明 $t1 和 $t2 兩個變數
為什麼它可以使用?沒有任何報錯,手冊上也沒說為什麼
所以我理解你的問題想表達兩方面意思:
沒有宣告變數
使用沒有宣告的變數不報錯誤
針對第一點,PHP是弱型別語言,而且變數不需要在使用先前聲明,你也可以理解為給變數賦值的時候同時宣告(初始化)了變數。
那麼,list的用法手冊已經說的很清楚,將數組中的值賦給一組變數,也就是你運行完list($t1, $t2) = explode(' ', microtime())
的时候,已经给 $t1
和 $t2
賦值成功。
針對第二點,對於沒有宣告的變數(也就是沒有初始化的變數),使用的話當然也報錯。
你可以試試直接 echo $undefined;
,$undefined
第一次出现在这里,不出意外情况,肯定报个 Notice
等級的錯誤(請先正確設定錯誤等級以及顯示錯誤)。
所以你第二條疑問不是使用了未宣告的變數不報錯,而是你使用了 list()
已經幫你賦值過的變數了。
望採納!謝謝。
======= Update ======
上面圖片也標註了PHP版本對於list()的使用區別,使用時請注意!
某草草2017-05-16 13:11:14
list 函數的作用就是把數組中的值賦給一些變量,例如:
list($a, $b, $c) = array(1, 2, 3);
那麼$a的值就是1,$b和$c的值就是2和3