当前位置: 首页 > 知识库问答 >
问题:

警告:in_array()要求参数2为数组,给定null

唐腾
2023-03-14

当试图向会话添加数据(并检查它是否已经存在)时,我会收到以下警告。

警告:in_array()要求参数2为数组,给定null

我怎样才能解决这个问题?

它所指的代码:

if(isset($_GET['product']) && !in_array($_GET['product'], $_SESSION['product'])){
    $_SESSION['product'][] = $_GET['product'];
}

我只有在清洁的浏览器上添加第一个产品时才会收到此警告。当我删除它并添加另一个产品时,警告就消失了。同样,如果我添加第二个产品。

共有3个答案

齐俊贤
2023-03-14

在将该值与isset一起使用之前,请检查该值是否已设置,并使用is_数组检查给定变量是否为数组。

if(isset($_GET['product']) && is_set($_SESSION['product']) && is_array($_SESSION['product']) && !in_array($_GET['product'], $_SESSION['product'])){
    $_SESSION['product'][] = $_GET['product'];
}
狄雅珺
2023-03-14

您的$_SESSION['产品']是空的。试试这个,

if(!empty($_SESSION['product']) && isset($_GET['product']) && !in_array($_GET['product'], $_SESSION['product'])){
    $_SESSION['product'][] = $_GET['product'];
}

它应该会起作用。

井礼骞
2023-03-14

战争说明了一切。此参数为空:

 $_SESSION['product']

使用前请确保已设置好。例子:

if(isset($_SESSION['product']) && isset($_GET['product']) &&  !in_array($_GET['product'], $_SESSION['product'])){
        $_SESSION['product'][] = $_GET['product'];
    }
 类似资料:
  • 我循环两个数组之间的字符串重叠,删除那些有一个值的值,以便只保留$check的空值,在这种情况下是$check[5]。 第二个$check是多维的。 第一个循环通过$names运行,第二个循环通过$check运行。 如果$names()中的当前字符串出现在的当前数组中,则该数组将被删除。 但是,控制台会打印一条警告:希望参数2是数组,如果给定空值。我觉得这很奇怪,因为应该等于$check中的一个数

  • 请帮忙。我无法理解这一点,虽然我只是在学习php,但我尝试向现有woocommerce函数添加代码,以便在购物车中有一组产品时删除支付网关。我认为下面第四行“为自动支付如果声明添加”是这里的问题。提前谢谢。

  • 在这种情况下,我的查询工作正常,我已经在mysql上对它们进行了测试。 首先,我有一个自定义查询函数,在MySQLDatabase类中如下所示 然后我有一个类叫用户使用MYSQL类 最后,我以这种方式调用index.php中的方法 以下是一些事实:1。-当我插入数据库中存在的id值时,会出现此警告 警告:mysqli_fetch_array()要求参数1为给定数组的mysqli_结果 2.-当我插

  • 设置一个应该在图像上放置广告的应用程序时,我在运行代码时遇到了这个WordPress错误,这是一个令人沮丧的星期试图修复这个问题。 我希望它能工作,但它给了我以下错误:警告:preg_replace_callback():需要参数2,' 如果有人能想出一个解决方案,那将是惊人的,非常感谢!

  • 我刚刚更新了PHP在我的服务器从PHP 5到PHP 7,我得到了这些警告: 警告:preg_replace_callback()[function.preg-replace-callback0]:要求参数2“chr(\1)”是有效的回调 警告:preg\u replace\u callback() 警告:preg_replace_callback()[function.preg-replace-c

  • 我已经使用(MySQLi过程)将我的php分成了2/3部分:第一部分专门用于db(open、execute、Total Row、infected Row、Close…),第二部分专门用于其他功能。以下是一个例子: db.php(第一个) 和functions.php(第二个) 当我尝试执行脚本时,我得到了以下警告错误: 如果您查看此函数以获取行数,则该参数将在函数内部进行测试,sql语句已在mys