php$t1$t2
淡淡烟草味
淡淡烟草味 2017-05-16 13:09:14
0
3
574

如圖:
我並沒有聲明 $t1 和 $t2 兩個變數
為什麼它可以使用?沒有任何報錯,手冊上也沒說為什麼

淡淡烟草味
淡淡烟草味

全部回覆(3)
phpcn_u1582

先上圖:

手冊說的很明白,把陣列中的值賦給一組變數。

你的問題:

如圖:
我並沒有聲明 $t1 和 $t2 兩個變數
為什麼它可以使用?沒有任何報錯,手冊上也沒說為什麼

所以我理解你的問題想表達兩方面意思:

  1. 沒有宣告變數

  2. 使用沒有宣告的變數不報錯誤

針對第一點,PHP是弱型別語言,而且變數不需要在使用先前聲明,你也可以理解為給變數賦值的時候同時宣告(初始化)了變數。
那麼,list的用法手冊已經說的很清楚,將數組中的值賦給一組變數,也就是你運行完list($t1, $t2) = explode(' ', microtime())的时候,已经给 $t1$t2 賦值成功。

針對第二點,對於沒有宣告的變數(也就是沒有初始化的變數),使用的話當然也報錯。
你可以試試直接 echo $undefined;$undefined第一次出现在这里,不出意外情况,肯定报个 Notice 等級的錯誤(請先正確設定錯誤等級以及顯示錯誤)。

所以你第二條疑問不是使用了未宣告的變數不報錯,而是你使用了 list() 已經幫你賦值過的變數了。

望採納!謝謝。

======= Update ======

上面圖片也標註了PHP版本對於list()的使用區別,使用時請注意!

某草草

list 函數的作用就是把數組中的值賦給一些變量,例如:

list($a, $b, $c) = array(1, 2, 3);

那麼$a的值就是1,$b和$c的值就是2和3

曾经蜡笔没有小新
list($t1,$t2)

上面的意思的將右邊的陣列的鍵值依序值給$t1 $t2

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板