php - PHP 警告:in_array() 期望参数 2 为数组,在 /home/co 中给出 null
问题描述
我需要代码来避免这部分中的此错误:- 添加到 woocommerce 产品编辑页面选项以选择特定用户或特定用户角色或特定组所选用户将在特定前端页面中找到一个选择框选择产品
不显示错误的唯一工作方法是(我必须选择至少一个用户和一个用户角色和一个组)如果我离开即使三个字段中的一个字段为空,那么一旦选定的用户访问我得到的前端页面error_log 中的下一个错误
[09-Apr-2020 15:55:52 UTC] PHP 警告:in_array() 期望参数 2 为数组,/home/comenzo/mysite.com/wp-content/plugins/myplugin/myplugin.php 中给出的 null第 1128 行
我也在第 1128 行收到通知
未定义的偏移量:0
这是第 1128 行
if(in_array($user_id,get_post_meta($product_id,"product_user_list")[0]) || in_array($user_roles[0],get_post_meta($product_id,"product_user_role_list")[0]) || in_array($group_id,get_post_meta($product_id,"product_point_groups")[0])) {
这部分的整个代码是
echo "<label>Select Product</label>";
echo '<select class="user_product" name="user_product" class="form-control" style="margin-bottom:30px;margin-top:30px;" required>';
echo "<option value='-1'>Select Product</option>";
/*echo "<h1>HEllo JMM JMK JPD!</h1>";*/
foreach($product_ids as $product_id)
{
$product = wc_get_product( $product_id );
/*echo "<h1>HEllo JMM JMK JPD!</h1>";
print_r(get_post_meta($product_id,"product_user_list"));
print_r(get_post_meta($product_id,"product_user_role_list"));
print_r(get_post_meta($product_id,"product_point_groups"));*/
if(in_array($user_id,get_post_meta($product_id,"product_user_list")[0]) || in_array($user_roles[0],get_post_meta($product_id,"product_user_role_list")[0]) || in_array($group_id,get_post_meta($product_id,"product_point_groups")[0])) {
echo "<h1>IN</h1>";
?>
因此,如果我只选择一个字段或从三个字段中选择两个字段以不出现此错误,或者即使我没有选择其中任何一个,请需要代码来避免此错误
问候
解决方案
我不确定你为什么要使用[0]
但是如果实际的元值应该是一个数组,那么这将起作用:
$product = wc_get_product( $product_id );
$product_user_list = get_post_meta($product_id,"product_user_list");
$product_user_role_list = get_post_meta($product_id,"product_user_role_list");
$product_point_groups = get_post_meta($product_id,"product_point_groups");
$product_user_list_array = is_array( $product_user_list ) ? $product_user_list : array();
$product_user_role_list_array = is_array( $product_user_role_list ) ? $product_user_role_list : array();
$product_point_groups_array = is_array( $product_point_groups ) ? $product_point_groups : array();
if( in_array($user_id, $product_user_list_array) || in_array($user_roles[0],$product_user_role_list_array) || in_array($group_id,$product_point_groups_array)) {
echo "<h1>IN</h1>";
}
推荐阅读
- python - !unzip 在 jupyter 单元格中未被识别为命令
- json - 在 Dart 中使用唯一键解析 JSON 对象
- c++ - 使用堆栈的 NQueens 问题,代码给出不正确的输出
- css - 如何在 React Native 中使用 css position absolute 和 flex end
- python - 无法将已安装的 python 库 Yellowbrick 导入到 jupyter notebook
- amazon-web-services - 如何在 AWS EKS 设置中的 ksonnet 初始化步骤中解决“错误未找到 Major.Minor.Patch 元素”
- amazon-web-services - 反复出现的警告 - 无法清理 KCL 2.3 上的租约
- python - 如何修剪列表的特定元素?
- google-sheets - 对表格进行分组、计算行数、用空格填充列,并将所有内容连接到 Google 表格中的一个大字符串中
- python - Pytho,BeautifulSoup - 网络抓取“find_all”正在返回 NoneType