我使用if-else来显示各种子菜单,具体取决于用户是否登录。
我知道我可以用做到这一点
if( ($currentPage == userSettings.php) || ($currentPage == .....ETCETCETC) )
但我认为将url弹出到一个数组中,然后只搜索当前页面是否在该数组中会更干净。
<?php
$memberArray = array("userProfile.php","userHome.php","userSettings.php",
"userAccount.php","userChangePassword");
}else if( in_array($currentPage , $memberArray) ){
?>
然而,当我运行代码并重新加载页面时,我收到一个错误,说数据类型是错误的
编辑:包含错误消息,代码"格式化为使用4行而不是两行。
警告:in_array()[function.in-array]:第16行/home/a696695/public_html/include/sidebar.php中第二个参数的数据类型错误
在if语句中设置$memberArray
,在else中使用in_array
函数。所以如果它进入,那么$memberArray
还没有被设置。
从您的代码中,$memberArray可能被设置在前一个if块中,如下所示:
if (whatever) {
$memberArray = array();
} else if (in_array($currentPage, $memberArray) {
}
但如果(whatever)
不为真,则在运行else if
时不会设置$memberArray
。如果是这种情况,请在整个事件之前声明$memberArray
:
$memberArray = array();
if (whatever) {
} else if (in_array($currentPage, $memberArray) {
}