@MaksimT
backend pro

Что почитать, чтобы понимать синтаксис ОПП в PHP?

Добрый день, тостеры!
Наткнулся на статью
habrahabr.ru/post/143317
Так как я самоучка по PHP, то мне не понятны такие моменты по синтаксису:
$jsonError->error='No function called';

Как можно создавать объект не создавая класс??
Смотрю различные видео, там часто используют в классе возврат this
return $this
.
смысл $this нигде не объясняют.
Подскажите какую литературу почитать, чтобы разбираться в ОПП PHP.

Сам прочитал Мишель Е. Дэвис и Джон А. Филлипс - Изучаем PHP и MySQL, PHP_Praktika_sozdania_Web-saytov_2_izdanie (еще не всю).

Каждый день смотрю руководство на php.net + куча различных форумов.
Везде полно инфы про инкапсуляцию, про предопределенные методы классов, про встроенные функции для работы с классами...

А чтобы объяснили азы никто не говорит.
  • Вопрос задан
  • 612 просмотров
Решения вопроса 1
27cm
@27cm
TODO: Написать статус
Форумы и документация это конечно хорошо, но если вы не знакомы с ООП и только начинаете, то лучше - читайте книги. Для постижения азов рекомендую:
Самоучитель PHP 5/6, Кузнецов, Симдянов
PHP 5 (в подлиннике)
Если не любите читать большие толстые книги, то можете просто прочитать главу по ООП в любой из этих книг.

Что касается момента с $jsonError->error='No function called';, PHP в данном случае неявно создаёт объект stdClass. Делать так не желательно, т. к. PHP сделает предупреждение:
Warning: Creating default object from empty value.
Лучше писать так:
<?php
header('Content-type: text/html; charset=UTF-8');
if (count($_REQUEST)>0){
    // ...
}else{
    $jsonError = new stdClass();
    $jsonError->error = 'No function called';
    echo json_encode($jsonError);
}
?>

Результат будет тот же самый, но никаких предупреждений уже не будет.

смысл $this нигде не объясняют

https://php.net/manual/ru/language.oop5.basic.php
Псевдо-переменная $this доступна в том случае, если метод был вызван в контексте объекта. $this является ссылкой на вызываемый объект. Обычно это тот объект, которому принадлежит вызванный метод, но может быть и другой объект, если метод был вызван статически из контекста другого объекта.

return $this - делается это для реализации цепочек вызовов (Method Chaining).
www.wisereport.ru/method_chaining
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@asd111
PHP. Объекты, шаблоны и методики программирования

Желательно на английском читать т.к. русская версия слегка устарела.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы