Форумы и документация это конечно хорошо, но если вы не знакомы с ООП и только начинаете, то лучше - читайте книги. Для постижения азов рекомендую:
Самоучитель 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