2

我遇到了来自 array_diff 语句的奇怪错误。声明是:

$query = array_diff($params, array('f' => array()));

并且是var_dump_$paramsarray(1) { ["f"]=> array(0) { } }

这发生在一个名为的drupal模块中Islandora_solr_search,我两次收到以下错误消息,如下所示

注意:IslandoraSolrResults->setBreadcrumbs() 中的数组到字符串的转换(/var/www/drupal/sites/all/modules/islandora_solr_search/includes/results.inc 的第 427 行)。

注意:IslandoraSolrResults->setBreadcrumbs() 中的数组到字符串的转换(/var/www/drupal/sites/all/modules/islandora_solr_search/includes/results.inc 的第 427 行)。

有谁知道为什么会这样?

4

1 回答 1

4

当在数组中找到数组时,array_diff 会引发通知错误。查看Michiel Thalen 的评论

我可能假设您正在运行 php 5.4 或更高版本。您可以通过在沙箱中检查您的 array_diff 语句来自己查看它(您可以在那里切换 php 版本)

Drupal论坛也有讨论

作为快速修复,我建议这样做:

$query = @array_diff($params, array('f' => array()));

如果您要使用带有深度数组的 array_diff 函数,网上有很多解决方案,包括官方 php.net 资源。

于 2013-12-20T02:39:12.343 回答