in_array() [function.in-array]:第二个参数的数据类型错误

问题描述 投票:0回答:3
$modules                = array(
'home'                  => 'home',
'login'                 => 'login',
'forum'                 => 'forum',
'topic'                 => 'topic',
'post'                  => 'post',
'profile'               => 'profile',
'moderate'              => 'moderate',
'search'                => 'search',
'ucp'                   => 'usercp',
'ucc'                   => 'usercp',
'pm'                    => 'pm',
'members'               => 'members',
'boardrules'            => 'boardrules',
'groups'                => 'groupcp',
'help'                  => 'help',
'misc'                  => 'misc',
'tags'                  => 'tags',
'attach'                => 'attach'
);

if (in_array($modules, $_GET['module'])) {
include $_GET['module'].'.php';
}

给出:

警告:in_array() [function.in-array]:第 24 行 d:\public_html orte.php 中第二个参数的数据类型错误

怎么了?

php arrays
3个回答
10
投票

你的论点混淆了 - 请参阅

in_array()

if (in_array($_GET['module'], $modules)) {
    include $_GET['module'].'.php';
}

1
投票

传递给

in_array

的变量顺序错误
 bool in_array  ( mixed $needle  , array $haystack  [, bool $strict  ] )

0
投票

来自 PHP.NET:

bool in_array ( mixed $needle , array $haystack [, bool $strict ] )

确保您的针是:

$modules
并且您要寻找的位置是:
$_GET['module']
。我感觉你把这两者搞混了。确实应该这样写:

in_array($_GET['module'], $modules);

希望有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.