请记住,我已经很晚了,所以这可能只是一个我忽略的非常简单的解决方案。
我有这个foreach声明:
<? foreach ($entrees as $entree) { ?>
<li>
<span class="food-name">
<?=$entree['name']?>
</span>
</li>
<?}?>
这为$ entree提供了一个未定义的变量错误。
A PHP Error was encountered
Severity: Notice
Message: Undefined variable: entree
Filename: views/welcome_message.php
Line Number: 9
我尝试了print_r($entrees);
,结果是
Array ( [0] => Array ( [name] => Lamb [description] => A small leg of lamb ) [1] => Array ( [name] => Ham [description] => Large thing of ham ) ) 1
同样,这可能是一个愚蠢的简单但我已经尝试了30分钟,并且不能让它为我的生活工作。在此先感谢您的帮助。
答案 0 :(得分:2)
您需要检查多维数组中是否设置了条目名称。这是长版本,因为我不知道PHP中的short_open_tags
选项。
<强>代码强>
<?
$entrees = array();
$entrees[0]['name']="Lamb";
$entrees[0]['description'] ="A small leg of lamb";
$entrees[1]['name']="Ham";
$entrees[1]['description'] ="Large thing of ham";
echo "<ul>\n";
foreach ($entrees as $entree) {
if(!empty($entree['name'])){
echo "<li>";
echo "<span class=\"food-name\">";
echo $entree['name'];
echo "</span>";
echo "</li>\n";
}
}
echo "</ul>";
?>
<强>输出强>
<ul>
<li><span class="food-name">Lamb</span></li>
<li><span class="food-name">Ham</span></li>
</ul>
<强>更新强>
通过@Arjan了解了一些新内容 - 使用[short_open_tags][1]
的原始代码也可以使用if
语句,前提是它们在您的构建中已启用。在我的测试中,他们抛出了一个错误,因为我的测试机器使用了较旧版本的PHP。重建后,他们默认工作。
<?=$entree['name']?>
根据此用法中的manual,=
符号表示echo()
,默认情况下在PHP 5.4.1中启用。在搜索Google时,因为他们的搜索使用不同的运算符,我无法找到链接,因为我不知道用法的名称。如果您正在与开发团队进行编程,请确保使用与团队其他成员相同的标记样式。
答案 1 :(得分:2)
您需要在php.ini中将short_open_tag
设置为On
。这为我修复了它,没有额外的代码。
答案 2 :(得分:0)
使用类似..
<?
if(isset($entrees)) {
foreach ($entrees as $entree) { ?>
<li>
<span class="food-name">
<?=$entree['name']?>
</span>
</li>
<?} }
else { echo 'Any thing You want';
}
?>
答案 3 :(得分:0)
试试这个
<?php
if(isset($entrees) && $entrees != NULL){
foreach($entrees as $entree => $arrData){?>
<li>
<span class="food-name">
<?php echo $arrData['name'] ?>
</span>
</li>
<?}
}?>