Задать вопрос
@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 + куча различных форумов.
Везде полно инфы про инкапсуляцию, про предопределенные методы классов, про встроенные функции для работы с классами...

А чтобы объяснили азы никто не говорит.
  • Вопрос задан
  • 615 просмотров
Подписаться 1 Оценить 3 комментария
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 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. Объекты, шаблоны и методики программирования

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

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽