生产站点上阵列的非法偏移

时间:2015-04-24 02:40:01

标签: php

我收到以下警告信息:

  

警告:非法偏移类型   /home/bmtuser/public_html/wp-content/plugins/plugin_name/plugin_file.php   在第238行

违规行是以下代码:

$new_sorted_array[$sort_order] = $term->term_id;

以下是设置它的代码:

$new_sorted_array = array( );
foreach ( $terms as $term ) {
    $taxonomy_id = 'taxonomy_'.$term->term_id;
    $sort_order = get_option( $taxonomy_id, $term );
    $new_sorted_array[$sort_order] = $term->term_id;
}
ksort( $new_sorted_array, SORT_NUMERIC );

这在我的本地主机上工作正常但是当我把它移到生产时它会给我这个错误。为什么会这样?

2 个答案:

答案 0 :(得分:1)

$sort_order不能是$new_sorted_array的索引。主要是因为它不是数字,也不是字符串。

也许您的错误显示在您的计算机上较低。请在代码顶部添加此项,以便最大限度地报告错误:error_reporting(-1);

答案 1 :(得分:0)

警告表示您正在使用object类型的索引变量。这可能意味着总是或在某些情况下$ term-> term_id不是整数而是对象。 冷杉你必须检查案件,如果是正常情况,那么你可以通过下一次添加来避免它:

<?php
$new_sorted_array = array( );
foreach ( $terms as $term ) {
    $xxx=$term->term_id;
    if(gettype($xxx)=='object') continue;
    $taxonomy_id = 'taxonomy_'.$xxx;
    $sort_order = get_option( $taxonomy_id, $term );
    $new_sorted_array[$sort_order] = $term->term_id;
}
ksort( $new_sorted_array, SORT_NUMERIC );

?>

通过这种方式,您可以避免错误的索引。 我不同意警告必须被压制 - 必须解决它们。