тк 3 июля праздник (в беларуси), буду не онлайн (по возможности буду отвечать)

Обращение к свойствам класса через $this

Пусть теперь наш метод show() выводит нечто полезное - имя пользователя, которое хранится в свойстве name.

Для того, чтобы обратиться к свойству класса внутри метода этого класса, вместо имени объекта следует писать специальную переменную $this.

То есть в нашем случае для получения имени пользователя внутри класса мы должны написать $this->name:

<?php class User { public $name; public $age; public function show() { return $this->name; // вернем имя из свойства } } ?>

Почему внутри класса нельзя написать так - $user->name? Потому что это имя переменной снаружи класса и сам класс про это имя ничего не знает (более того, у нас же могут быть несколько объектов одного класса, и у них будут разные имена переменных).

Давайте создадим объект нашего класса и проверим работу метода show():

<?php class User { public $name; public $age; public function show() { // Возвращаем имя: return $this->name; } } $user = new User; // создаем объект класса $user->name = 'Коля'; // записываем имя $user->age = 25; // записываем возраст // Вызываем наш метод: echo $user->show(); // выведет 'Коля' ?>

Сделайте класс Employee (работник), в котором будут следующие свойства - name (имя), age (возраст), salary (зарплата).

Сделайте в классе Employee метод getName, который будет возвращать имя работника.

Сделайте в классе Employee метод getAge, который будет возвращать возраст работника.

Сделайте в классе Employee метод getSalary, который будет возвращать зарплату работника.

Сделайте в классе Employee метод checkAge, который будет проверять то, что работнику больше 18 лет и возвращать true, если это так, и false, если это не так.

Создайте два объекта класса Employee, запишите в их свойства какие-либо значения. С помощью метода getSalary найдите сумму зарплат созданных работников.

Запись свойств

С помощью $this свойства можно не только прочитывать, но и записывать.

Давайте сделаем метод setName, который параметром будем принимать имя пользователя и записывать его в свойство name:

<?php class User { public $name; public $age; // Метод для изменения имени юзера: public function setName($name) { $this->name = $name; //!! запишем новое значение свойства name } } $user = new User; // создаем объект класса $user->name = 'Коля'; // записываем имя $user->age = 25; // записываем возраст // Установим новое имя: $user->setName('Вася'); // Проверим, что имя изменилось: echo $user->name; // выведет 'Вася' ?>

Сделайте класс User, в котором будут следующие свойства - name (имя), age (возраст).

Сделайте метод setAge, который параметром будет принимать новый возраст пользователя.

Создайте объект класса User с именем 'Коля' и возрастом 25. С помощью метода setAge поменяйте возраст на 30. Выведите новое значение возраста на экран.

Модифицируйте метод setAge так, чтобы он вначале проверял, что переданный возраст больше или равен 18. Если это так - пусть метод меняет возраст пользователя, а если не так - то ничего не делает.

Сделайте класс Employee (работник), в котором будут следующие свойства - name (имя), salary (зарплата). Сделайте метод doubleSalary, который текущую зарплату будет увеличивать в 2 раза.

Сделайте класс Rectangle (прямоугольник), в котором в свойствах будут записаны ширина и высота.

В классе Rectangle сделайте метод getSquare, который будет возвращать площадь этого прямоугольника.

В классе Rectangle сделайте метод getPerimeter, который будет возвращать периметр этого прямоугольника.