Предупреждение PHP: usort() ожидает, что параметр 1 будет array, null задан в & array_slice () ожидает, что параметр 1 будет array, null задан в

function prepare_items() {
  $columns  = $this->get_columns();
  $hidden   = array();
  $sortable = $this->get_sortable_columns();
  $this->_column_headers = array( $columns, $hidden, $sortable );
  usort( $this->$data, array( &$this, 'usort_reorder' ) );
  $per_page = 5;
  $current_page = $this->get_pagenum();
  $total_items = count( $this->data );
  $this->found_data = array_slice( $this->data,( ( $current_page-1 )* $per_page ), $per_page );
  $this->set_pagination_args( array(
    'total_items' => $total_items,
    'per_page'    => $per_page
  ) );
  $this->items = $this->found_data;}

я получаю ошибку thia из кода выше.

Warning: usort() expects parameter 1 to be array, null given in [...]

Warning: array_slice() expects parameter 1 to be array, null given in [...]

может ли кто-нибудь помочь мне решить его проблемы?

2 ответа

  1. I think $this — >$data > returns empty. Убедитесь, что $this — >$data > возвращает массив и проверить значение ( if(!empty($this->$data)) и продолжить функцию

    function prepare_items() {
      $columns  = $this->get_columns();
      $hidden   = array();
      $sortable = $this->get_sortable_columns();
      $this->_column_headers = array( $columns, $hidden, $sortable );
    if(!empty($this->$data) {
      usort( $this->$data, array( &$this, 'usort_reorder' ) );
      $per_page = 5;
      $current_page = $this->get_pagenum();
      $total_items = count( $this->data );
      $this->found_data = array_slice( $this->data,( ( $current_page-1 )* $per_page ), $per_page );
      $this->set_pagination_args( array(
        'total_items' => $total_items,
        'per_page'    => $per_page
      ) );
      $this->items = $this->found_data;}}
    
  2. Я опоздал на эту вечеринку, но $this->$data должен быть $this->>data. Удалите»$», который находится перед «data».