Методы
Часть раздела Объектно-ориентированное программирование путешествия по PHP на Coddy — урок 5 из 91.
Методы — это функции, которые принадлежат классу. Они определяют поведение или действия, которые могут выполнять объекты.
Вот пример класса с методами:
<?php
class Calculator {
public function greet() {
echo "Hello! I'm a calculator.\n";
}
public function add($a, $b) {
return $a + $b;
}
public function multiply($x, $y) {
$result = $x * $y;
echo $x . " × " . $y . " = " . $result . "\n";
return $result;
}
}Создайте объект калькулятора:
$myCalc = new Calculator();Вызовите метод, которому не нужны параметры:
$myCalc->greet();Вызов методов с параметрами:
$sumResult = $myCalc->add(5, 3);
echo $sumResult . "\n";Вызовите метод, который одновременно выводит и возвращает значение:
$product = $myCalc->multiply(4, 7);Вывод:
Hello! I'm a calculator.
8
4 × 7 = 28Методы могут:
- Принимать параметры, такие как
add($a, $b) - Возвращать значения, такие как
return $a + $b;
- Выводите результат напрямую, например
echo "Hello!"; - Выполняйте как вывод, так и возврат значения
Ключевой момент: Методы определяют, что могут делать ваши объекты. Используйте ключевые слова public function для определения метода внутри класса. Вызывайте методы, используя оператор -> для объекта.
Задание
ЛегкоСоздайте класс BankAccount в файле bank_account.php со следующими элементами:
- Свойство
public $balance - Метод
deposit, который принимает сумму и добавляет её к балансу - Метод
withdraw, который принимает сумму и вычитает её из баланса - Метод
getBalance, который возвращает текущий баланс
Затем в файле driver.php создайте аккаунт с балансом 0, внесите $100, снимите $30 и выведите баланс в формате: "Current balance: $[balance]"
Шпаргалка
Методы — это функции, которые принадлежат классу и определяют поведение или действия, которые могут выполнять объекты.
Определяйте методы внутри класса, используя public function:
<?php
class Calculator {
public function greet() {
echo "Hello! I'm a calculator.\n";
}
public function add($a, $b) {
return $a + $b;
}
public function multiply($x, $y) {
$result = $x * $y;
echo $x . " × " . $y . " = " . $result . "\n";
return $result;
}
}Вызывайте методы с помощью оператора -> у объекта:
$myCalc = new Calculator();
$myCalc->greet();
$sumResult = $myCalc->add(5, 3);
$product = $myCalc->multiply(4, 7);Методы могут:
- Принимать параметры:
add($a, $b) - Возвращать значения:
return $a + $b; - Выводить данные:
echo "Hello!"; - Делать и то, и другое (вывод и возврат значения)
Попробуйте сами
<?php
require_once 'bank_account.php';
$myAccount = new BankAccount();
$myAccount->balance = 0;
// TODO: Внести 100
// TODO: Снять 30
// TODO: Вывести баланс в формате: "Current balance: $[balance]"
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Объектно-ориентированное программирование
1Основы ООП
Внешние файлыВведение в ООПКлассы и объектыКлючевое слово $thisМетодыСвойстваКонструктор (__construct)Деструктор (__destruct)Итоги — Простой калькулятор4Наследование
Основы наследованияКлючевое слово parent::Переопределение методовКлючевое слово finalАбстрактные классыИтоги — Иерархия сотрудников7Инкапсуляция
Public, Protected, PrivateПодробный разбор модификаторов доступаГеттеры и сеттерыСокрытие данныхConstructor Promotion (8.0)Итоги — Система учета студентов10Продвинутые концепции ООП
Композиция против наследованияВнедрение зависимостейАнонимные классыПеречисления (PHP 8.1)Файберы (PHP 8.1)Глубокое погружение в клонирование объектовГенераторы и итераторы13Паттерны проектирования. Часть 2
Паттерн КомандаПаттерн АдаптерПаттерн ДекораторПаттерн Шаблонный методПаттерн СостояниеПаттерн КомпоновщикПаттерн Репозиторий2Пространства имен и автозагрузка
Введение в пространства именКлючевое слово useСтандарт автозагрузки PSR-4Автозагрузчик ComposerИтоги: структурированный проект5Интерфейсы и контракты
Введение в интерфейсыРеализация интерфейсовРеализация нескольких интерфейсовИнтерфейс против абстрактного классаType Hinting с интерфейсамиИтоги — Калькулятор фигур8Магические методы
Введение в магические методы__toString и __debugInfo__get, __set, __isset, __unset__call и __callStatic__clone и клонирование объектов__serialize и __unserializeИтоги — Кастомная коллекция11Система типов и обработка ошибок
Объявление типовNullable-типыТипы объединения и пересеченияКлассы исключенийИерархия пользовательских исключенийTry, Catch, FinallyИтоги — Валидатор форм14Проект: Управление библиотекой
Обзор проектаКлассы Book и User3Свойства классов
Свойства экземпляра и статические свойстваКонстанты в классахСтатические методы и свойстваПриватные и защищенные свойстваСвойства Readonly (PHP 8.1)Итоги — Менеджер банковского счета6Полиморфизм
Снова о переопределении методовПолиморфизм через интерфейсыType Hinting и Union TypesПозднее статическое связываниеИтоги — Payment Processor9Трейты
Введение в трейтыИспользование нескольких трейтовРазрешение конфликтов трейтовАбстрактные методы в трейтахТрейты и наследование12Паттерны проектирования. Часть 1
Введение в паттерны проектированияПаттерн SingletonПаттерн FactoryПаттерн ObserverПаттерн Strategy