升级到PHP 5.4后的未定义变量

时间:2014-07-09 17:24:34

标签: php php-5.4

我无法弄清楚这个简单代码有什么问题:

<?php    
$arr[0]['name'] = 'foo';    
?>

<? foreach ($arr as $v): ?>    
    <?=$v['name']?>    
<? endforeach; ?>

返回:

Notice: Undefined variable: v

有人知道这有什么问题吗?

4 个答案:

答案 0 :(得分:3)

请查看原始脚本输出(不是浏览器呈现)。最有可能的是,您尚未启用短标记,并且您的foreach块甚至无法运行。

相关:PHP tags

答案 1 :(得分:0)

应该是:

<?php    
$arr[0]['name'] = 'foo';    
?>

<?php foreach ($arr as $v): ?>    
    <?=$v['name']?>    
<?php endforeach; ?>

答案 2 :(得分:0)

您正在查看多维数组。

名称索引之前有一个零索引。在foreach中使用key =&gt;值。

<?php    
$arr[0]['name'] = 'foo';    
?>

<?php foreach ($arr as $v=>$i): ?>    
    <?php echo $i['name']; ?>    
<?php endforeach; ?>

输出:

foo

答案 3 :(得分:-1)

永远不要使用<?作为已弃用的<?php,如果<?=它可以正常使用{1}},因为它是一个简短的方法。 所以你应该使用:

<?php    
$arr[0]['name'] = 'foo';    
?>

<?php foreach ($arr as $v): ?>    
    <?=$v['name']?>    
<?php endforeach; ?>