【发布时间】:2014-07-09 17:24:34
【问题描述】:
我无法弄清楚这个简单的代码有什么问题:
<?php
$arr[0]['name'] = 'foo';
?>
<? foreach ($arr as $v): ?>
<?=$v['name']?>
<? endforeach; ?>
这会返回:
Notice: Undefined variable: v
有人知道这是怎么回事吗?
【问题讨论】:
我无法弄清楚这个简单的代码有什么问题:
<?php
$arr[0]['name'] = 'foo';
?>
<? foreach ($arr as $v): ?>
<?=$v['name']?>
<? endforeach; ?>
这会返回:
Notice: Undefined variable: v
有人知道这是怎么回事吗?
【问题讨论】:
请查看原始脚本输出(不是浏览器渲染)。很可能,您没有启用短标签,并且您的 foreach 块甚至没有运行。
相关:PHP tags
【讨论】:
应该是:
<?php
$arr[0]['name'] = 'foo';
?>
<?php foreach ($arr as $v): ?>
<?=$v['name']?>
<?php endforeach; ?>
【讨论】:
您正在查看一个多维数组。
在名称索引之前有一个零索引。在 foreach 中使用 key=>value。
<?php
$arr[0]['name'] = 'foo';
?>
<?php foreach ($arr as $v=>$i): ?>
<?php echo $i['name']; ?>
<?php endforeach; ?>
输出:
foo
【讨论】:
foreach 块没有任何问题(除了其周围的短标签)。
永远不要使用<?,因为它已被弃用,您应该使用<?php,以防<?= 它会起作用,因为它是一种速记方法。
所以你应该使用:
<?php
$arr[0]['name'] = 'foo';
?>
<?php foreach ($arr as $v): ?>
<?=$v['name']?>
<?php endforeach; ?>
【讨论】: