php - 数组和foreach

标签 php arrays

$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/

相关文章:

php - nl2br() 、 preg_replace 、 htmlspecialchars() 和 mysql_real_escape_string()

php - 根据其他变量值和静态文本构造一个 PHP 变量名

arrays - 如何访问数组 NODE JS 中的对象

java - 数组的数组列表,如何使最后一个数组的大小与列表中的其他数组有所不同

Java arraycopy 二维数组的特定区域

php - mysql 中多个商店的假期

php - PSR-1:2.3。副作用:配置文件中的变量

c++ - 将 C++ 代码转换为 C、结构数组

java - 只能从数组中索引 0 处删除对象

php - 使用 mailgun PHP API 发送电子邮件