-3

選択したphpサブメニュークラスの作成に問題はありませんが、サブメニュー内にこのサブメニューを作成しようとすると、機能しません。

問題:引用符が原因で構文エラーを返すecho内部を定義します。echo

<ul class="sub_nav">
  <li <?php if ($page=='kurumsal-hakkimizda') {echo "class='selected'";} ?>>
    <a href="<?=BAZ_URL?>/tr/kurumsal-hakkimizda">Hakkımızda</a>
  </li>
  <li <?php if ($page=='kurumsal-ik') {echo "class='selected'";} ?>>
    <a href="<?=BAZ_URL?>/tr/kurumsal-ik">İnsan Kaynakları</a>
    <?php
      if ($page=='kurumsal-ik')
      { echo '
        <ul id="sub_sub_nav">

           <!-- !! PROBLEM STARTS HERE !! -->
           <li class="'if($page=='kurumsal-ik'){echo 'selected'}'">
           <!-- !! CANT USE ECHO INSIDE ECHO BEACUSE OF QUOTES !! -->

            <a href="'.BAZ_URL.'/tr/kurumsal-ik">İnsan Kaynakları Politikamız</a>
           </li>

           <li class="'if($page=='kurumsal-hedef'){echo 'selected'}'">
            <a href="'.BAZ_URL.'/tr/kurumsal-hedef">Kurumsal Hedef</a>
           </li>
        </ul>
     ';}
    ?>
  </li>
  <li <?php if ($page=='kurumsal-haberler') {echo "class='selected'";} ?>>
    <a href="<?=BAZ_URL?>/tr/kurumsal-haberler">Kurumsal Haberler</a>
  </li>
</ul>
4

4 に答える 4

2

すでに中に入っていechoますよね?だからこれを行う:

<li class="', ($page=='kurumsal-ik') ? 'selected' : '', '">

それは確かに機能します。三項演算子と呼ばれています!:)

注:三項演算子は値を返す関数として機能するため、ここではドット連結演算子を使用できません。カンマのみ , 使用できます。

于 2012-09-06T10:20:51.850 に答える
0

変数を作成して、最後にエコーアウトすることができます。

<?php
  if ($page=='kurumsal-ik')
  { 
        $myVar= '
    <ul id="sub_sub_nav">
       <li class="';
    if($page=='kurumsal-ik')
    {
        $myVar .= 'selected';
    }
    $myVar.='">
        <a href="'.BAZ_URL.'/tr/kurumsal-ik">İnsan Kaynakları Politikamız</a>
       </li>

       <li class="';
    if($page=='kurumsal-hedef')
    {
        $myVar.= 'selected';
    }
    $myVar.='">
        <a href="'.BAZ_URL.'/tr/kurumsal-hedef">Kurumsal Hedef</a>
       </li>
    </ul>
    ';
    echo $myVar;
   }
?>
于 2012-09-06T10:21:50.173 に答える
0

Praveenが言ったように、それはすでにエコー内にあるので、別のものを使用する必要はありません. エコー内の三項演算子の構文は次のとおりだと思います。

<?php echo '<li class="' . ( $page == 'page_name' ? 'selected' : '' ) . '"><a href="/">Link</a></li>'; ?>

それが役立つことを願っています。

于 2012-09-06T10:27:36.637 に答える
0

<?phpPHP の便利な機能の 1 つは、 andタグの外側にあるすべてのものを直接出力することです?>。そのため、長い echo ステートメントは必要ありません。

これは、制御構造の代替構文と組み合わせて使用​​する場合に特に実用的です。

コードは次のように読みやすくなります。

<?php if($page=='kurumsal-ik'): ?>
    <ul id="sub_sub_nav">

    <li class="<?php if($page=='kurumsal-ik') echo 'selected';?>">
        <a href="<?php echo BAZ_URL; ?>/tr/kurumsal-ik">İnsan Kaynakları Politikamız</a>
    </li>

    <li class="<?php if($page=='kurumsal-hedef') echo 'selected';?>">
        <a href="<?php echo BAZ_URL; ?>/tr/kurumsal-hedef">Kurumsal Hedef</a>
    </li>

    </ul>
<?php endif; ?>

PS 省略形を使用してコードを短縮できます。<?=つまり、<?php echo.

于 2012-09-06T10:44:33.090 に答える