Почему модель возвращает объект? Код:class newsView
{
public function __construct($model)
{
//Это пришло из конструктора модели
var_dump($model);
}
public function listmodel() {
return 1;
}
}
class newsModel
{
public function __construct()
{
return 'Это вернула newsModel';
}
}
class My
{
public function showdata()
{
$model = new newsModel;
$view = new newsView($model);
$result = $view->listmodel();
return $result;
}
}
$obj = new My();
$res = $obj->showdata();
В ответе var_dump($model); показывает:object(newsModel)#32 (0) {
}
В чём фишка, почему не строка? И где сама фраза Это вернула newsModel?
P.S. Запустить онлайн https://goo.gl/xfuFXG и знает кто ни будь онлайн-демку получше этой убогой?

21 Авг 2019 в 07:01
178 +1
0
Ответы
1

В данном коде модель newsModel возвращает объект, а не строку, потому что конструктор класса не должен возвращать значение. Конструктор служит для инициализации объекта и может выполнять какие-то действия, но не должен возвращать какое-либо значение. Поэтому строка "Это вернула newsModel" не отображается, так как конструктор возвращает пустой объект класса newsModel.

Если вы хотите передать какие-то данные из конструктора модели во view, то лучше создать отдельные методы для этого. Например, добавить метод getData() в модель, который будет возвращать нужную информацию, и затем вызывать этот метод из контроллера.

Что касается онлайн-демки, где можно попробовать более качественные примеры кода и его исполнения, вы можете попробовать найти ресурсы для онлайн-кода или песочницы для программирования, такие как repl.it или codepen.io. Там вы сможете создавать и проверять код в браузере.

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