PHP 恐怕有些小错误
PHP about some small mistake I'm afraid
我正在为我的导航栏制作一个 active/unactive 系统。我只是用 if/else 做的,因为我的 PHP 技能不是那么好。但是现在我有 PHP 的 2 个规则,但它给了我一个错误:
Parse error: syntax error, unexpected '}', expecting ',' or ';' in C:\xampp\htdocs\De Campagne\includes\header.php on line 36
<li class="<?php if($page == home){echo 'nav-active'} else{ echo 'nav-unactive'};?>"></li><a href="index.php">Home</a></li> //Line 36
<li class="<?php if($page == leveringen){echo 'nav-active'} else{ echo 'nav-unactive'};?>"><a href="leveringen.php">Leveringen</a></li> //Line 37
提前致谢
语句必须以分号结尾;
在每条语句后加上它们,表示语句结束。例如
echo 'nav-active';
但是,您不应在 else 语句后添加分号,因为花括号会处理它。
在字符串周围使用引号进行比较
在 home 和 leveringen 周围添加 " 或 ' 以指示您正在比较字符串值 - 除非它们确实是常量你已经在别处定义了。
这应该适合你:
<li class="<?php if($page == "home"){echo 'nav-active';} else{ echo 'nav-unactive';}?>"><a href="index.php">Home</a></li>
<li class="<?php if($page == "leveringen"){echo 'nav-active';} else{ echo 'nav-unactive';}?>"><a href="leveringen.php">Leveringen</a></li>
A tweeked demo demonstrating how the links should look like with this(按执行代码)
题外话:
考虑 ternary operator 作为 if-else 语句的替代。
编辑:
记得在早期出现的情况下删除多余的 </li>
。
这应该适合你:
(您忘记了分号!此外,如果 home
和 leveringen
不是常量,您必须在它们两边加上引号)
<li class="<?php if($page == home){echo 'nav-active';} else{ echo 'nav-unactive';} ?>"></li><a href="index.php">Home</a></li>
<li class="<?php if($page == leveringen){echo 'nav-active';} else{ echo 'nav-unactive';}?>"><a href="leveringen.php">Leveringen</a></li>
如果您想使用三元运算符,请使用:
<li class="<?= (($page == home) ? "nav-active" : "nav-unactive") ?>"></li><a href="index.php">Home</a></li>
<li class="<?= (($page == leveringen) ?"nav-active" : "nav-unactive") ?>"><a href="leveringen.php">Leveringen</a></li>
你错过了回声后的分号,不需要;之后
<li class="<?php if($page == home){echo 'nav-active';} else{ echo 'nav-unactive';} ?>"></li>
<a href="index.php">Home</a>
</li>
<li class="<?php if($page == leveringen){echo 'nav-active';} else{ echo 'nav-unactive';}?>">
<a href="leveringen.php">Leveringen</a>
</li>
我的朋友,
您在 IF 语句中回显后缺少分号:
line 36: <li class="<?php if($page == home){echo 'nav-active';} else{ echo 'nav-unactive'};?>"></li><a href="index.php">Home</a></li>
line: 37 <li class="<?php if($page == leveringen){echo 'nav-active';} else{ echo 'nav-unactive'};?>"><a href="leveringen.php">Leveringen</a></li>
您需要阅读您显示的语法错误。缺少“;”。
您可以像这样简单地实现它:
<li class="<?php echo (($page == 'home') ? 'nav-active' : 'nav-unactive');?>"><a href="index.php">Home</a></li>
终于完成了。感谢大家的帮助。我用三元运算符修复了它,并更正了 CSS 赋值。
我正在为我的导航栏制作一个 active/unactive 系统。我只是用 if/else 做的,因为我的 PHP 技能不是那么好。但是现在我有 PHP 的 2 个规则,但它给了我一个错误:
Parse error: syntax error, unexpected '}', expecting ',' or ';' in C:\xampp\htdocs\De Campagne\includes\header.php on line 36
<li class="<?php if($page == home){echo 'nav-active'} else{ echo 'nav-unactive'};?>"></li><a href="index.php">Home</a></li> //Line 36
<li class="<?php if($page == leveringen){echo 'nav-active'} else{ echo 'nav-unactive'};?>"><a href="leveringen.php">Leveringen</a></li> //Line 37
提前致谢
语句必须以分号结尾;
在每条语句后加上它们,表示语句结束。例如
echo 'nav-active';
但是,您不应在 else 语句后添加分号,因为花括号会处理它。
在字符串周围使用引号进行比较
在 home 和 leveringen 周围添加 " 或 ' 以指示您正在比较字符串值 - 除非它们确实是常量你已经在别处定义了。
这应该适合你:
<li class="<?php if($page == "home"){echo 'nav-active';} else{ echo 'nav-unactive';}?>"><a href="index.php">Home</a></li>
<li class="<?php if($page == "leveringen"){echo 'nav-active';} else{ echo 'nav-unactive';}?>"><a href="leveringen.php">Leveringen</a></li>
A tweeked demo demonstrating how the links should look like with this(按执行代码)
题外话:
考虑 ternary operator 作为 if-else 语句的替代。
编辑:
记得在早期出现的情况下删除多余的 </li>
。
这应该适合你:
(您忘记了分号!此外,如果 home
和 leveringen
不是常量,您必须在它们两边加上引号)
<li class="<?php if($page == home){echo 'nav-active';} else{ echo 'nav-unactive';} ?>"></li><a href="index.php">Home</a></li>
<li class="<?php if($page == leveringen){echo 'nav-active';} else{ echo 'nav-unactive';}?>"><a href="leveringen.php">Leveringen</a></li>
如果您想使用三元运算符,请使用:
<li class="<?= (($page == home) ? "nav-active" : "nav-unactive") ?>"></li><a href="index.php">Home</a></li>
<li class="<?= (($page == leveringen) ?"nav-active" : "nav-unactive") ?>"><a href="leveringen.php">Leveringen</a></li>
你错过了回声后的分号,不需要;之后
<li class="<?php if($page == home){echo 'nav-active';} else{ echo 'nav-unactive';} ?>"></li>
<a href="index.php">Home</a>
</li>
<li class="<?php if($page == leveringen){echo 'nav-active';} else{ echo 'nav-unactive';}?>">
<a href="leveringen.php">Leveringen</a>
</li>
我的朋友,
您在 IF 语句中回显后缺少分号:
line 36: <li class="<?php if($page == home){echo 'nav-active';} else{ echo 'nav-unactive'};?>"></li><a href="index.php">Home</a></li>
line: 37 <li class="<?php if($page == leveringen){echo 'nav-active';} else{ echo 'nav-unactive'};?>"><a href="leveringen.php">Leveringen</a></li>
您需要阅读您显示的语法错误。缺少“;”。
您可以像这样简单地实现它:
<li class="<?php echo (($page == 'home') ? 'nav-active' : 'nav-unactive');?>"><a href="index.php">Home</a></li>
终于完成了。感谢大家的帮助。我用三元运算符修复了它,并更正了 CSS 赋值。