Не удалось использовать array_merge внутри класса PHP

class Test
{
  public $data = array();

  public function addData($data = array())
  {
    array_merge($data, $this->data);
    return $this;
  }

  public function showData()
  {
    print_r($this->data);
  }
}
$test = new Test;
$test->addData(array("halo", "zaki"))->showData();

Я пытался объединить 2 массива, но он не работает, может быть, кто-то может мне объяснить?

2 ответа

Решение

Вы забыли присвоить полученный массив переменной-члену $data, Так должно быть,

$this->data = array_merge($data, $this->data);

array_merge не изменяет переданные ему массивы, а возвращает результат.

Попробуй это:

public function addData($data = array())
{
    $this->data = array_merge($data, $this->data);
    return $this;
}
Другие вопросы по тегам