Что такое метод? В PHP это просто функция внутри класса. Это самый простой способ думать об этом. Вы инициализируете их точно так же, как и функцию, включая использование ключевого слова function.



В объектно-ориентированном программировании объекты могут иметь определенные характеристики, но они также могут выполнять определенные действия. Действия представлены методами. Методы также могут иметь модификаторы видимости, такие как private, protected и public, но мы не будем рассматривать их в этой статье и остановимся на модификатор public по умолчанию.

Мы развиваем предыдущую статью и добавляем методы к классам Dog и Car.



Некоторые методы объявлены с параметрами (необязательными параметрами), а другие без; мы рассмотрим оба. Где размещаются методы? Обычно сразу после свойств в классе. Константы находятся в верхней части класса, за ними следуют свойства, а затем методы. Можно ли их расположить в другом порядке? Однако, конечно, по соглашению мы помещаем их после свойств.

Создание метода

Методы определяются следующим образом:

Модификатор относится к ключевым словам общедоступный, частный или защищенный. В этой статье мы сосредоточимся только на модификаторе public. Откровенно говоря, ключевое слово public можно опустить, так как модификатор по умолчанию является общедоступным, но мы включим его для лучшей практики.

Теперь, когда мы знаем, как создать метод, давайте начнем реализовывать его в нашем классе Dog. Первый метод, который мы определим, — это метод walk(). Этот метод не будет иметь никаких параметров и просто выведет оператор.

Чтобы вызвать метод, мы должны сначала создать экземпляр объекта. В этом случае давайте создадим объект Dog и вызовем наш метод прогулки.

Объект $dog ответит: «Я иду». Еще одно действие, которое собаки регулярно выполняют, — это лай, поэтому мы можем создать метод bark().

Когда мы вызываем метод, он будет повторять «Я лаю».

Методы с параметрами

Теперь, когда мы увидели пару примеров методов без параметров, давайте взглянем на один с параметром. Хорошим вариантом будет sleep(). Собака может заснуть в зависимости от количества энергии, которое у нее есть, поэтому мы объявим параметр $energy_level внутри скобок нашего метода sleep().

публичная функция sleep( $energy_level ) { }

Когда мы создаем экземпляр нашего объекта, мы можем передать уровень энергии собаки в качестве аргумента методу сна. В теле метода sleep мы создадим оператор if, который проверяет аргумент, который он только что получил, и выводит либо то, что он спит, либо что он не хочет спать.

Если мы передадим 20 в качестве аргумента, мы получим ответ, что собака спит.

Значения параметров по умолчанию

Мы также можем объявить значение по умолчанию для параметра $energy_level. Чтобы объявить значение параметра по умолчанию, просто добавьте знак равенства и значение параметра после объявления параметра.

Для нашего метода sleep() мы установим значение по умолчанию для $energy_level равным 100. Почему мы хотим это сделать? Потому что теперь мы можем вызывать метод, не передавая ему никаких аргументов.

В первом примере без передачи каких-либо аргументов вывод будет «Я не хочу спать». При втором вызове метода sleep() и передаче 30 в качестве аргумента вывод будет "Я сплю".

Действия с автомобилями

Давайте подумаем о действиях, которые может выполнять автомобиль. Три, которые приходят на ум, это включение, выключение и движение. Включение и выключение автомобиля довольно простое. Мы могли бы проверить, вставлен ли ключ, но для простоты примеров мы пропустим его в данном случае.

В приведенном выше примере мы создали два метода: turnOn() и turnOff(). Был сконструирован новый Lamborghini, машина то включалась, то выключалась. Вывод вышеуказанной программы будет таким: «Я включён», за которым следует «Я выключен».

Давайте посмотрим, как мы создадим метод drive(). Состояние автомобиля по умолчанию будет выключено. Чтобы управлять нашим Lamborghini, нам нужно сначала включить его.

Под нашим классом мы создаем новый Lamborghini Diablo. Мы пытаемся управлять им, не передавая никаких аргументов методу drive(), но получаем следующий ответ: «Ты должен меня завести». При следующей попытке мы передаем логическое значение true в наш метод drive() и получаем ответ, который мы искали: «Я за рулем». Когда мы передаем аргумент методу, который имеет значение параметра по умолчанию, значение перезаписывается, и аргумент всегда выигрывает.

Это были слишком упрощенные примеры, но я полагаю, что теперь вы понимаете, что такое методы на самом деле.



Дино Кайич в настоящее время является руководителем отдела информационных технологий в компаниях LSBio (LifeSpan BioSciences, Inc.), Absolute Antibody, Kerafast, Everest BioTech, Nordic MUbio и Exalpha. Он также является генеральным директором MyAutoSystem. Он имеет более чем десятилетний опыт разработки программного обеспечения. У него есть B.S. в области компьютерных наук и несовершеннолетнего в области биологии. Его опыт включает в себя создание приложений для электронной коммерции на уровне предприятия, разработку программного обеспечения на основе исследований и содействие распространению знаний посредством письма.

Вы можете связаться с ним в LinkedIn, подписаться на него в Instagram или подписаться на его публикацию в Medium.

Прочитайте все истории Дино Каджика (и тысяч других авторов на Medium). Ваш членский взнос напрямую поддерживает Дино Кайича и других писателей, которых вы читаете. Вы также получите полный доступ ко всем историям на Medium.