Как из конструктора класса вернуть массив? из файла 1.php объявляю классinclude_once('2.php');
$result = new class1();
print_r($result);
в файле 2.php имеется класс с конструкторомclass class1 {
public function __construct() {
$res['1']='1';
$res['2']='2';
return($res);
}
}
в таком варианте итог вывода файла 1 пустой объект.
через куча разных попыток получился результат:
файл 1.phpinclude_once('2.php');
$result = new class1();
print_r($result->result());
файл 2.phpclass class1 {
private $res;
function __construct() {
$this->$res['1']='1';
$this->$res['2']='2';
}
public function result() {
return($this->$res);
}
}
в таком варианте в итоге массив возвращается, но при этом на каждую строчку где присутствует $this->$res выдается ошибка о том, что переменная res не объявлена.
как сделать правильно что бы и массив передавался, желательно сразу с конструктора, и ошибок не возникало?

21 Авг 2019 в 07:00
199 +1
0
Ответы
1

Чтобы вернуть массив из конструктора класса без ошибок, вы можете сделать следующее:

Файл 1.php:

include_once('2.php');
$result = new class1();
print_r($result->getResult());

Файл 2.php:

class class1 {
private $res;
function __construct() {
$this->res['1']='1';
$this->res['2']='2';
}
public function getResult() {
return $this->res;
}
}

Используйте стрелочную операцию -> для доступа к приватной переменной $res и ее методу getResult(). Таким образом, вы вернете массив из конструктора без ошибок.

20 Апр 2024 в 13:09
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир