@lunsy
СНГшный "программист"

Как добавить массив чисел в конец массива, в методе ООП?

Изучаю вывод методов по цепочке по учебнику Трепачёв Д.П.
Облазил весь гугл, и не понимаю как в классе в методе за раз добавить несколько элементов в массив
Дана такая задача
Добавьте в класс Arr еще один метод append, который параметром будет принимать массив чисел и добавлять эти числа в конец массива, хранящегося в объекте.
<?php
	echo (new Arr)->add(1)->append([2, 3, 4])->add(5)->getSum();
?>

Это мой код
класс Arr для объекта
<?php
	class Arr
	{
		private $numbers = []; // массив чисел
		
		// Добавляем число в массив:
		public function add($number)
		{
			$this->numbers[] = $number;
			return $this; // вернем ссылку сами на себя
		}
		// пробовал так 1 вариант
                append($nums)
                //  и так 2 вариант
                //  append($nums, $nums1, $nums2)
		{
                // 1 вариант	
              array_push($this->numbers[],  $nums);
             //  2 вариант	
             // $this->numbers[] =  [$nums, $nums1, $nums2];
                }
		// Находим сумму чисел:
		public function getSum()
		{
			return array_sum($this->numbers);
		}
	}
        $arr = new Arr;
	$arr->append(2, 3, 4); // добавляем в массив числа 
	print_r (new $arr);
?>

вывод
Arr Object ( [numbers:Arr:private] => Array ( ) [numbers1:Arr:private] => Array ( ) )
append выводит ноль
  • Вопрос задан
  • 243 просмотра
Решения вопроса 1
rpsv
@rpsv
делай либо хорошо, либо никак
public function append(array $nums): self
{
    array_push($this->numbers, ...$nums);
    return $this;
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
В цикле.
Все операции над массивами делаются в цикле.

Если ты не знаешь, как перебрать в цикле массив чисел, тебе надо учить циклы, а не ООП.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽