-2

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

4

2 回答 2

1

$memberArray在 if 语句中设置并in_array在 else 中使用函数。因此,如果它进入 else$memberArray尚未设置。

于 2013-07-16T10:12:18.683 回答
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) {

}
于 2013-07-16T10:12:54.027 回答