为了账号安全,请及时绑定邮箱和手机立即绑定

是否可以在PHP的for循环中使用三元运算符?

是否可以在PHP的for循环中使用三元运算符?

PHP
繁星点点滴滴 2021-05-03 16:25:16
我正在创建一个简单的一页网页,并希望使用for循环来输出导航链接。将阶段编号($x)与字符串配对时出现问题。最终输出预期为/应为:利兹,维多利亚桥,第一阶段第二阶段,第二阶段地点第三阶段,第三阶段的位置阶段4,其他阶段5,其他但是,输出是第一阶段,第三阶段的位置第二阶段,第三阶段的位置第三阶段,第三阶段的位置阶段4,其他阶段5,其他而且我不太确定自己哪里出了问题。我尝试使用if / else语句,如下所示。<!-- vertical nav -->      <nav class="v-nav p-4">        <p class="title">Stage</p>        <ul>          <?php          for ($x = 1; $x <= 21; $x++) {            if ($x = 1) {              $place = 'Victoria Bridge, Leeds';            } else if ($x = 2) {              $place = 'Victoria Bridge 2, Leeds';            } else {              $place = 'test'            }          ?>            <li>              <a href="#stage<?php echo $x ?>" data-number="<?php echo $x ?>">                <span class="label">Stage <?php echo $x ?> - <?php echo $place ?></span>                <span class="dot"></span>              </a>            </li>          <?php } ?>        </ul>      </nav>由于$x某种原因,它导致重复21次以上,并阻止了所有其他页面元素的加载。以下是我目前使用三元运算符的内容,似乎无法弄清楚该漏洞在哪里。<!-- vertical nav -->      <nav class="v-nav p-4">        <p class="title">Stage</p>        <ul>          <?php for ($x = 1; $x <= 21; $x++) { ?>            <li>              <a href="#stage<?php echo $x ?>" data-number="<?php echo $x ?>">                <span class="label">                  <?php                    $navLink = 'Stage '.$x.', '.(                      $x == 1 ? 'Victoria Bridge, Leeds' :                      $x == 2 ? 'Second Stage Location' :                      $x == 3 ? 'Third Stage Location' : 'Any Other');                    echo $navLink;                  ?>                </span>                <span class="dot"></span>              </a>            </li>          <?php } ?>        </ul>      </nav>
查看完整描述

2 回答

?
开满天机

TA贡献1786条经验 获得超13个赞

问题出在您的运营商是否


您正在使用=而不是==


改用这个:


<!-- vertical nav -->

      <nav class="v-nav p-4">

        <p class="title">Stage</p>

        <ul>

          <?php


          for ($x = 1; $x <= 21; $x++) {


            if ($x == 1) {

              $place = 'Victoria Bridge, Leeds';

            } else if ($x == 2) {

              $place = 'Victoria Bridge 2, Leeds';

            } else {

              $place = 'test'

            }


          ?>

            <li>

              <a href="#stage<?php echo $x ?>" data-number="<?php echo $x ?>">

                <span class="label">Stage <?php echo $x ?> - <?php echo $place ?></span>

                <span class="dot"></span>

              </a>

            </li>

          <?php } ?>

        </ul>

      </nav>


查看完整回答
反对 回复 2021-05-14
?
宝慕林4294392

TA贡献2021条经验 获得超8个赞

对于第一个操作员比较,使用错误==而不是=


if ($x == 1) {

          $place = 'Victoria Bridge, Leeds';

        } else if ($x == 2) {

          $place = 'Victoria Bridge 2, Leeds';

        } else {

          $place = 'test'

        }

对于三元运算符,请分别使用正确的括号将其打开和关闭

Sanbox链接

for ($x = 1; $x <= 21; $x++) {

            $place  = ($x == 1 ?'Victoria Bridge, Leeds' :

               ($x == 2 ? 'Second Stage Location' :

                ($x == 3 ? 'Third Stage Location' : 'Any Other')

               )

            );

         echo $place.'<br>';

     }


查看完整回答
反对 回复 2021-05-14
  • 2 回答
  • 0 关注
  • 163 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信