我选择创建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>
答案 0 :(得分:2)
它已经在echo
内了吗?所以这样做:
<li class="', ($page=='kurumsal-ik') ? 'selected' : '', '">
确实有效。它被称为ternary operator! :)
注意:此处不能使用点连接运算符,因为,三元运算符充当返回值的函数。只能使用逗号 ,
。
答案 1 :(得分: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;
}
?>
答案 2 :(得分:0)
正如Praveen所说,它已经在回声中,因此不需要使用另一个。 我相信回声中ternary operator的语法是:
<?php echo '<li class="' . ( $page == 'page_name' ? 'selected' : '' ) . '"><a href="/">Link</a></li>'; ?>
希望有所帮助。
答案 3 :(得分:0)
PHP的一个有用功能是它直接输出<?php
和?>
标记之外的所有内容,因此您不需要长回声语句。
与alternative syntax for control structures
组合使用时尤其实用您的代码将更具可读性:
<?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; ?>
P上。 S.
您可以使用速记<?=
来缩短代码,这意味着<?php echo
。