echo内部使用echo时出现简单php引号语法错误
我在创建选中的php子菜单类时没有问题,但当我尝试在子菜单中创建这个子菜单时:我无法让它工作 问题:由于引号,在echo内定义echo返回语法错误echo内部使用echo时出现简单php引号语法错误,php,syntax-error,quotes,submenu,Php,Syntax Error,Quotes,Submenu,我在创建选中的php子菜单类时没有问题,但当我尝试在子菜单中创建这个子菜单时:我无法让它工作 问题:由于引号,在echo内定义echo返回语法错误 <ul class="sub_nav"> <li <?php if ($page=='kurumsal-hakkimizda') {echo "class='selected'";} ?>> <a href="<?=BAZ_URL?>/tr/kurumsal-hakkimizda"&g
<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>
它已经在里面了,对吗?这样做:
<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中,因此没有必要使用另一个。 我相信echo中a的语法是:
<?php echo '<li class="' . ( $page == 'page_name' ? 'selected' : '' ) . '"><a href="/">Link</a></li>'; ?>
希望这会有所帮助。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; ?>
附言。
您可以使用缩写来缩短代码,逗号表示?也许你想用点来代替它?不不不。。。逗号只能放在这里。在这种情况下不起作用。@Cosmin echo是一种语言构造,您可以向其传递多个参数,参数之间用逗号分隔。@Cosmin我已在答案中澄清了您的问题!:可以使用点连接,三元运算符只需要用括号括起来,请参阅我下面的帖子中的示例。我搜索了这个问题的答案一个小时,但没有找到解决方案,所以我在这里提问。为什么是-3?请解释一下,这样我下次就可以小心了。是的,我想你这边没什么错。