2

请记住,我来晚了,所以这可能只是一个我忽略的非常简单的解决方案。

我有这个 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 分钟,但无法让它为我的一生工作。在此先感谢您的帮助。

4

4 回答 4

4

您需要在 php.ini中设置short_open_tag为。On这为我修复了它,没有额外的代码。

于 2014-11-09T21:39:35.437 回答
2

您需要检查条目名称是否设置在多维数组中。这是长版本,因为我不知道short_open_tagsPHP 中的选项。

代码

<?
$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']?>

根据此用法中的手册=,符号表示echo()默认情况下在 PHP 5.4.1 中启用。在通过谷歌搜索时,因为他们的搜索使用不同的运算符,我无法找到链接,因为我不知道使用的名称。如果您正在与开发人员团队一起编程,请确保使用与团队其他成员相同的商定标签样式。

于 2013-05-07T05:51:21.187 回答
0

尝试这个

<?php 
   if(isset($entrees) && $entrees != NULL){
      foreach($entrees as $entree => $arrData){?>
        <li>
          <span class="food-name">
            <?php echo $arrData['name'] ?>
          </span>
        </li>         
     <?}
   }?>
于 2013-05-07T06:49:46.930 回答
0

使用像..

   <?   
     if(isset($entrees)) {
     foreach ($entrees as $entree) { ?>
   <li>
       <span class="food-name">
           <?=$entree['name']?>
       </span>
   </li>
      <?} } 
       else { echo 'Any thing You want';
      }
     ?>
于 2013-05-07T06:39:19.973 回答