如何在PHP脚本中解决“错误的数据类型”错误?

时间:2011-10-19 23:40:46

标签: php arrays

完全错误:

in_array() [<a href='function.in-array'>function.in-array</a>]: Wrong datatype for second argument in /var/www/vhosts/example.com/httpdocs/sites/example.com/themes/example/page.tpl.php on line 22.

相关守则:

if (($_GET['nid']) && ($_GET['uid'] != '5')) :
    $arr = array("7916","7917","7996","7918","7990","7919","7921","7924","7925","7923","7922","8011");
    reset($arr);
    $nid = $_GET['nid'];
    // settype($nid, "integer"); 
elseif(($_GET['uid'] == '5') && ($is_front)):
    include("include_ad_front.php");    
endif;

if((in_array($nid, $arr)) && ($is_front) && (!$_GET['uid'])) {
    //code continues below...

第3行和第5行只是解决问题的主要原因。第10行实际上是此错误中的第22行,也是引发错误的行。

1 个答案:

答案 0 :(得分:2)

我想我看到了你的问题。

在完成第一组in_array检查后,您将调用if..else个内容。现在if...else第一个部分正在创建数组,但不是第二个。

尝试在第一个if...else 之前移动数组,而不是在其中。