P粉9868609502023-08-22 09:46:05
#如果你將一個PHP數組傳遞給一個期望字串的函數,例如echo
或print
,那麼PHP解釋器會將你的陣列轉換為字面字串Array
,拋出這個Notice並繼續執行。例如:
php> print(array(1,2,3)) PHP Notice: Array to string conversion in /usr/local/lib/python2.7/dist-packages/phpsh/phpsh.php(591) : eval()'d code on line 1 Array
在這種情況下,函數print
將字面字串Array
輸出到stdout,然後將Notice記錄到stderr並繼續執行。
另一個PHP腳本的範例:
<?php $stuff = array(1,2,3); print $stuff; //PHP Notice: Array to string conversion in yourfile on line 3 ?>
$stuff = array(1,2,3); foreach ($stuff as $value) { echo $value, "\n"; }
輸出:
1 2 3
或包含陣列鍵名:
$stuff = array('name' => 'Joe', 'email' => 'joe@example.com'); foreach ($stuff as $key => $value) { echo "$key: $value\n"; }
輸出:
name: Joe email: joe@example.com
注意,陣列元素也可以是陣列。在這種情況下,可以再次使用foreach
或使用陣列語法存取內部數組元素,例如$row['name']
如果只是一個普通的一維數組,可以使用分隔符號將所有單元格連接成一個字串:
<?php $stuff = array(1,2,3); print implode(", ", $stuff); //输出 1, 2, 3 print join(',', $stuff); //输出 1,2,3
如果你的陣列有複雜的結構,但仍需要將其轉換為字串,可以使用http://php.net/json_encode
$stuff = array('name' => 'Joe', 'email' => 'joe@example.com'); print json_encode($stuff);
輸出:
{"name":"Joe","email":"joe@example.com"}
如果只是為了偵錯目的而檢查陣列內容,可以使用下列函數之一。請記住,var_dump是其中最詳細的,通常首選用於此目的
#範例:
$stuff = array(1,2,3); print_r($stuff); $stuff = array(3,4,5); var_dump($stuff);
輸出:
Array ( [0] => 1 [1] => 2 [2] => 3 ) array(3) { [0]=> int(3) [1]=> int(4) [2]=> int(5) }
P粉7398862902023-08-22 00:07:45
當你有很多命名為C[]
的HTML輸入時,你在POST數組的另一端得到的是這些值的數組$_POST['C']
。所以當你echo
它時,你正在嘗試列印一個數組,所以它只會列印Array
和一個提示。
要正確列印一個數組,你可以循環遍歷它並echo
每個元素,或者你可以使用print_r
。
另外,如果你不知道它是一個陣列還是一個字串或其他什麼,你可以使用var_dump($var)
,它會告訴你它是什麼類型和它的內容是什麼。僅用於調試目的。