php - 升级到 PHP 7.3 破坏了以前工作的代码,如何解决?
问题描述
我的 WordPress 站点在 PHP 更新之前运行良好,我没有更新在线站点的版本,但是我在本地服务器上进行实验的那个站点检测到以下问题。
出现的消息是:
“警告:array_merge():参数 #19 不是 C:....php 中第 1004 行的数组”
它似乎发生在 array_merge 函数中。
<?php
$resume = get_posts(
array(
'post_type' => array('post', 'events'),
'numberposts' => -1,
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'custom_filter',
),
array(
'key' => 'location_latitude',
),
),
)
);
foreach ($resume as $post) {
$meta[] = get_post_meta($post->ID, 'custom_category', true);
}
$oneDimensionalArray = call_user_func_array('array_merge', $meta); // Problem - line 1004 //
$unique = array_unique($oneDimensionalArray);
for ($i = 0; $i < (is_array($oneDimensionalArray) ? count($oneDimensionalArray) : 0); $i++) {
if (!in_array($oneDimensionalArray[$i], $unique)) {
$unique[] = $oneDimensionalArray[$i];
}
}
sort($unique); /* Sort array by value alphabetically */
foreach ($unique as $value) {
$resume2 = get_posts(
array(
'post_type' => array('post', 'estabelecimentos', 'eventos', 'parceiros', 'noticias'),
'numberposts' => -1,
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'custom_category',
'value' => $value,
'compare' => 'LIKE',
),
array(
'key' => 'location_latitude',
),
),
)
);
$count = count($resume2);
?>
<label title="<?php echo $value; ?> (<?php echo $count; ?>)"><input type="checkbox" class="chkbox"
data-value="<?php echo $value; ?>"
name="category[]"
value="<?php echo $value; ?>"><?php echo $value; ?>
<span> (<?php echo $count; ?>)</span></input></label>
<?php } ?>
解决方案
你之前用的是什么 PHP 版本?
我知道这个答案并不能解决问题,但也许它会对您有所帮助。
看看你是否可以在你的代码程序中使用 xdebug(我用它和 PHPstorm),你可以很容易地在你的代码中添加断点并一步一步地查看会发生什么。
也许你也可以添加
vardump($meta);
exit;
在错误之前查看 $meta 究竟包含什么。在此之前也尝试转储和退出其他变量。
也许您也可以尝试$oneDimensionalArray = [];
在合并功能之前设置。
推荐阅读
- python - ManyToMany 字段在单元测试中返回 None
- docker-compose - ddev start - 无法加载任何 docker-compose.*y*l 文件
- firebase - 反应原生 | Firebase Firestore | 仅在按两次后存储用户数据
- c - pthread_join 不起作用,互斥锁在 C 中不起作用
- c# - DocFX - 无法从 API 文档中过滤掉公共方法
- javascript - 获取嵌套对象的所有唯一组合
- r - 查找给定短语附近的所有术语
- python - 使用字典来引用函数内的全局变量(Python)
- apache - 在 Nginx 反向代理后面的 Apache 中获取真正的访客 IP 不起作用
- arrays - 是否有 Python 替代 IDL 的 array_indices() 函数?