我正在使用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行而不是2行。
警告:in_array()[function.in-array]:第16行/home/a6696695/public_html/include/sidebar.php中第二个参数的数据类型错误
答案 0 :(得分:1)
您在if语句中设置$memberArray
并在else中使用in_array
函数。因此,如果它进入,则$memberArray
尚未设置。
答案 1 :(得分:0)
从您的代码中,看起来$ memberArray可能会在前一个if块中设置,如下所示:
if (whatever) {
$memberArray = array();
} else if (in_array($currentPage, $memberArray) {
}
但如果(whatever)
不成立,则在运行$memberArray
时将不会设置else if
。如果是这种情况,请在整个事情之前声明$memberArray
:
$memberArray = array();
if (whatever) {
} else if (in_array($currentPage, $memberArray) {
}