echo内部使用echo时出现简单的php引号语法错误


Simple php quote syntax error on echo usage inside echo

我创建选定的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>

它已经在echo内部了,对吗?这样做:

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

它确实有效。它被称为三元运算符!:)

注意:此处不能使用点连接运算符,因为三元运算符充当返回值的函数。只能使用逗号,

您可以创建变量并在最后回显:

<?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;
   }
?>

正如Praveen所说,它已经在一个echo中,因此不需要使用另一个。我相信回声中三元运算符的语法是:

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

希望能有所帮助。

PHP的一个有用特性是,它直接输出<?php?>标记之外的所有内容,因此不需要长的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; ?>

第页。S您可以使用缩写<?=来缩短代码,意思是<?php echo