[英]If Statement Inside a Function Not working
类似的问题已经发布,但我找不到答案。
该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>
?>
这似乎是一个非常基本的问题,但对于我的一生,我一直无法弄清楚。 社区的帮助将是巨大的。 提前致谢。
因为函数内部的$subject_id_top
引用函数范围( 全局范围 )之外的$subject_id_top
,所以必须用以下语句“导入”它:
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 ); ?>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.