PHP in_array不工作-第二个数据类型不正确,但传递了一个数组


PHP in_array not working - incorrect second datatype but passing an array

我使用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) {
}