АКЦИЯ: бесплатные месячные курсы по созданию сайтов
на выбор: верстка, JavaScript, PHP или фреймворки. Сегодня последний день для записи! Жми!
⊗ppOpBsPTh 4 of 107 menu
Бесплатная Тренировка Верстки. Приглашаются желающие поверстать!

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

Пусть теперь наш метод show() выводит нечто полезное - имя пользователя, которое хранится в свойстве name. Для того, чтобы обратиться к свойству класса внутри метода этого класса, вместо имени объекта следует писать специальную переменную $this:

<?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 = 'john'; // записываем имя $user->age = 25; // записываем возраст // Вызываем наш метод: echo $user->show(); // выведет 'john' ?>

Сделайте класс 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 = 'john'; // записываем имя $user->age = 25; // записываем возраст // Установим новое имя: $user->setName('eric'); // Проверим, что имя изменилось: echo $user->name; // выведет 'eric' ?>

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

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

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

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

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

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

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

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