PHP in_array不工作 - 第二种数据类型不正确但传递数组

时间:2013-07-16 10:01:44

标签: php html

我正在使用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中第二个参数的数据类型错误

2 个答案:

答案 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) {

}