Вопрос: Пустой массив выдает предупреждение для array_merge ()

У меня есть следующий код для создания пользовательского объекта типа записи:

public function __construct( $name, $args = array(), $labels = array() ) {    //Set Variables    $this->post_type_name      = self::uglify( $name );    $this->post_type_args      = $args;    $this->post_type_lables    = $labels;

Позже в классе у меня есть метод, который генерирует метки с некоторыми значениями по умолчанию, а затем позволяет передавать переопределения при создании нового экземпляра класса.

//Set labels with some defaults and merge in overrides$labels = array_merge(    //Default values    array(        'name'               => _x( $plural, 'Post Type General Name' ),        'singular_name'      => _x( $name, 'Post Type Singular Name' ),        'add_new'            => _x( 'Add New ', strtolower( $name ) ),        'add_new_item'       => __( 'Add New ' . $name ),        'edit_item'          => __( 'Edit ' . $name ),        'new_item'           => __( 'New ' . $name ),        'all_items'          => __( 'All ' . $plural ),        'view_item'          => __( 'View ' . $name ),        'search_items'       => __( 'Search ', $plural ),        'not_found'          => __( 'No ' . strtolower( $plural ) . ' found' ),        'not_found_in_trash' => __( 'No ' . strtolower( $plural ) . ' found in Trash' ),        'parent_item_colon'  => '',        'menu_name'          => $plural    ),    //Overrides    $this->post_type_labels);

Просматривая журнал отладки в WordPress, я обнаружил, что получаю ошибку, что аргумент # 2, $ this- & gt; post_type_labels не был массивом, даже если он не указан при создании, по умолчанию передается пустой массив.

Как очистить это предупреждение и убедитесь, что $ this- & gt; post_type_labels является массивом? Я НЕ получаю одно и то же сообщение с $ args

Ответы и комментарии:

Тьфу ... Мне нужно прекратить кодировать, когда кофеин заканчивается ... Спасибо за дополнительную пару глаз.
Создан 17-11-2017 05:21 Cedon

У вас есть опечатка в строке:
$ this-> post_type_lables = $ метки;

затем вы используете необъявленную переменную $ this-> post_type_labels в качестве второго аргумента функции array_merge.
Создан 17-11-2017 04:45 Frank P. Walentynowicz2,4122917