Почему вместо массива выводится слово 'Array'? PHP: class GetArray extends TaskPrototype { // Задание №7 public $n=10; private function genArray($n){ $aRes = []; for ($i = 0 ; $i < $this->n; $i++) $aRes[] = rand(0,100); return $aRes; } public function func(){ $out[] = "n={$this->n}"; $out[] = "Массив {$this->genArray($this->n)}"; return $out; } }
А зачем создавать класс, для такой задачи? --- Добавлено --- массив $aRes вроде не сохранится, его надо указывать в свойстве класса Ты не написала, как вызываешь эти методы класса --- Добавлено --- А у тебя парень есть?
Dimon2x Такое задание. Работа с классами и методами.. Попробовала свойства записать, не помогло. Абстрактный класс PHP: abstract class TaskPrototype { public $title; public $number; public $description; public function __construct($params = []) { foreach ($params as $key => $value){ if (property_exists(static::class,$key)) $this->$key = $value; } } /** * @return string[] */ abstract public function func(); } Есть
@mrnmrzv PHP: class GetArray extends TaskPrototype { // Задание №7 public $n=10; private function genArray($n){ $aRes = []; for ($i = 0 ; $i < $this->n; $i++) $aRes[] = rand(0,100); return $aRes; } public function func(){ $out[] = "n={$this->n}"; $out["Массив"] = $this->genArray($this->n); return $out; } } $a = new GetArray(); echo '<pre>'; print_r($a->func());
сделала так. все получилось PHP: class GetArray extends TaskPrototype { // Задание №7 public $n=10; private function genArray($n){ $aRes = []; for ($i = 0 ; $i < $this->n; $i++) $aRes[] = rand(0,100); return $aRes; } public function func(){ $out[] = "n={$this->n}"; $out[] = implode(",", $this->genArray($this->n)); return $out; } }
И никто ведь сразу девушке не заметил из отвечающих, что массивы нельзя в php сразу кидать в строку, нужно сначала или склеить или сделать var_dump/var_export/print_r @mrnmrzv, молодец, что сама догадалась