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)
,它会告诉你它是什么类型和它的内容是什么。仅用于调试目的。