【问题标题】:Whats wrong with this foreach loop ? PHP [duplicate]这个 foreach 循环有什么问题? PHP [重复]
【发布时间】:2013-10-22 16:24:46
【问题描述】:

对不起,点需要定义字符串,这很令人困惑。糟糕的是,答案掉到现在我无法删除它......

$content 字符串将被写入 html 文件。当我运行它时,我得到了这个错误,它有什么问题?

注意:未定义变量:第 66 行 C:\wamp\www\serverstatus\example.php 中的内容

foreach ($ips as $id => $ip) {
    $content .= '
    <div class="server">
        <div class="head">
            <h2>'.$id.'</h2>
        </div>
        <div class="content">
            <ul>
                <li class="status"></li>
                <li class="ping"></li>
                <li class="player"></li>
                <li class="version"></li>
                <li class="motd"></li>
            </ul>
        </div>
    </div>
';

【问题讨论】:

  • 您在循环的第一次迭代中附加到一个未定义的变量。在循环之前设置$content = '';
  • 第66行是哪一个?
  • @Snowburnt $content .= '
  • @MikeB 您应该将您的评论重新发布为答案,因为它就是答案。
  • @aefxx 不,我认为这个问题不属于这里,因为它是关于一个简单的通知。我 110% 有另一个问题可以更好地解释这一切。为代表嫖娼我不感兴趣。显然,这并不能阻止其他所有人......

标签: php string foreach


【解决方案1】:

在使用之前将变量设置为空字符串。您不能在尚不存在的变量上使用 .=

$content = '';   // set it to empty string

【讨论】:

  • 我自己搞定了,不好意思问这个问题。我会在 12 分钟内接受它。当它被允许时。我很困惑,因为这在我设置“。”之前并没有发生。 §content 和 "=" 之间
【解决方案2】:

使代码适合一行并在开始时定义$content

 $content='';

foreach ($ips as $id => $ip) {
$content .= '  <div class="server">      <div class="head">           <h2>'.$id.'</h2>
    </div>
    <div class="content">
        <ul>
            <li class="status"></li>
            <li class="ping"></li>
            <li class="player"></li>
            <li class="version"></li>
            <li class="motd"></li>
        </ul>
    </div>
</div>
';

【讨论】:

    【解决方案3】:

    您正在附加一个尚不存在的变量。在foreach前添加以下内容:

    $content = "";
    

    另外你还没有关闭foreach,别忘了末尾的大括号:

    $content = "";
    
    foreach($ips as $id => $ip) {
        $content .= '<div class="server">';
        $content .= '<div class="head">';
        $content .= '<h2>'.$id.'</h2>';
        $content .= '</div>';
        $content .= '<div class="content">';
        $content .= '<ul>';
        $content .= '<li class="status"></li>';
        $content .= '<li class="ping"></li>';
        $content .= '<li class="player"></li>';
        $content .= '<li class="version"></li>';
        $content .= '<li class="motd"></li>';
        $content .= '</ul>';
        $content .= '</div>';
        $content .= '</div>';
    }
    

    【讨论】:

      【解决方案4】:

      问题正如错误所说,您使用的是未定义的变量 - 内容:

      所以你需要做的就是定义它,这段代码就可以工作了:

      $content = ''; //Add this code
      foreach ($ips as $id => $ip) {
      $content .= '
      <div class="server">
          <div class="head">
              <h2>'.$id.'</h2>
          </div>
          <div class="content">
              <ul>
                  <li class="status"></li>
                  <li class="ping"></li>
                  <li class="player"></li>
                  <li class="version"></li>
                  <li class="motd"></li>
              </ul>
          </div>
      </div>
      ';
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-21
        • 2013-03-13
        • 2011-02-06
        相关资源
        最近更新 更多