已发布类似问题,但我未能找到答案。
这个IF语句可以正常使用。
$subject_id_top = "case studies";
if($subject_id_top == "case studies") {echo "active";}
但是当我在函数中插入这个IF语句时,它不起作用。
<style>
.active {
color:#F00;
}
</style>
<?php
$subject_id_top = "case studies";
function menu_active() {
if($subject_id_top == "case studies") {echo "active";}
}
<a class="<?php menu_active(); ?>" href="#">Case Studies</a>
?>
这似乎是一个非常基本的问题,但对于我的生活,我还没能弄明白。社区帮助将是伟大的。提前谢谢。
答案 0 :(得分:1)
因为函数内部的$subject_id_top
在函数范围之外引用$subject_id_top
(the global scope),所以你必须使用以下语句“导入”它: / p>
global $subject_id_top;
你的功能应该变成:
function menu_active() {
global $subject_id_top;
if($subject_id_top == "case studies") {echo "active";}
}
然而,以这种方式依赖来自外部范围的信息通常不是优选的。你可以重构你的函数来接受一个绕过这种行为的参数,例如:
function menu_active( $subject_id_top ) {
if($subject_id_top == "case studies") {echo "active";}
}
然后使用$subject_id_top
从全局范围调用该函数作为其参数:
<?php menu_active( $subject_id_top ); ?>