$posts = array(
"message" => 'this is a test message'
);
foreach ($posts as $post) {
echo $post['message'];
}
为什么上面的代码只输出message的第一个字母? “t”。
谢谢!
最佳答案
foreach 获取数组的每个元素并将其分配给变量。要获得我假设您期望的结果,您只需要执行以下操作:
foreach ($posts as $post) {
echo $post;
}
关于为什么您的代码不起作用的细节:$post
将是数组元素的内容——在本例中是一个字符串。因为 PHP 不是强类型的/不支持类型转换,所以实际上您可以像处理数组一样处理字符串,并获取序列中的每个字符:
foreach ($posts as $post) {
echo $post[0]; //'t'
echo $post[1]; //'h'
}
显然 $post['message']
因此不是有效元素,并且没有从 (string)'message'
到 int 的显式转换
,因此这将评估为 $post[0]
。
关于php - 数组和foreach,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1157895/