Интерфейс в PHP | Интерфейсы PHP ООП

Опубликовано: 2021-03-03

Оглавление

Введение

PHP — это объектно-ориентированный язык, а интерфейс — одна из основных особенностей объектно-ориентированного языка программирования. Интерфейс позволяет кодировщикам объявлять функции, содержащие различные определения, в классе, реализующем этот интерфейс. Читайте дальше, чтобы понять интерфейс в PHP . Кроме того, просмотрите примеры интерфейса на PHP , представленные в статье, чтобы получить больше понимания.

Интерфейс в PHP

Интерфейс — это функция объектно-ориентированного программирования, которая позволяет создавать функции без реализации. Реализация должна быть включена в класс. Это помогает предотвратить сложность определения метода, поскольку каждый класс, наследующий интерфейс, может иметь различную реализацию в соответствии с необходимостью. Использование интерфейса в PHP аналогично классу, с той лишь разницей, что в функциях интерфейса нет реализации, а в интерфейсе нет переменных.

Особенности интерфейса в PHP

  • Интерфейс не содержит кода.
  • Интерфейс имеет объявление метода с аргументами или без них, но не определение.
  • Класс, реализующий интерфейс, должен содержать определение всех методов, объявленных в интерфейсе.
  • Класс может иметь реализацию нескольких интерфейсов.
  • Интерфейс не может иметь неабстрактных методов.

Синтаксис интерфейса

Интерфейс должен быть объявлен перед использованием. Синтаксис интерфейса аналогичен синтаксису класса, с той лишь разницей, что ключевое слово interface используется вместо ключевого слова class при объявлении интерфейса. Ниже приведен синтаксис объявления интерфейса в PHP :

<?php

//Объявление интерфейса в PHP

Интерфейс <Имя интерфейса>

{

//Код

}

?>

Доступ к методам, объявленным внутри интерфейса, можно получить, унаследовав интерфейс по классу. Класс наследует интерфейс в PHP , используя ключевое слово Implements при объявлении класса.

Ниже приведен синтаксис для реализации интерфейса в PHP :

<?php

//Объявление класса

Класс <имя класса> реализует <имя интерфейса>

{

//Код

}

?>

Примеры интерфейса в PHP

Чтобы понять использование интерфейса, давайте взглянем на приведенный ниже пример:

<?php

//Объявление интерфейса

Интерфейс Пример_Форма

{

Публичная функция ShapeArea();

}

//Класс, наследующий интерфейс

Класс Shape1 реализует Example_Shape

{

Публичная функция ShapeArea()

{

Эхо 'Площадь круга';

}

}

//Класс, наследующий интерфейс

Класс Shape2 реализует Example_Shape

{

Публичная функция ShapeArea()

{

Эхо 'Площадь квадрата';

}

}

// Класс без использования интерфейса

Форма класса3

{

Публичная функция AreaCal()

{

Эхо 'Нет интерфейса';

}

}

$Obj1 = новая форма1; // Объект для class1

$Obj2 = новая форма2; // Объект для class2

$obj3 = новая форма3; // Объект для класса 3, не использующий интерфейс

Эхо $obj1->ShapeArea();

Эхо '<br>';

Эхо $obj2->ShapeArea();

Эхо '<br>';

Эхо $obj3->AreaCal();

?>

Выход

Площадь круга

Площадь квадрата

Нет интерфейса

Объяснение вывода

Класс Shape1 имеет определение функции, объявленной внутри интерфейса. Shape1 реализует интерфейс, поэтому имеет доступ к внутренней функции и печатает «Площадь круга». Аналогично объяснение для класса Shape2 и вывода «Площадь квадрата». Класс Shape3 не реализует интерфейс и работает как обычный класс в PHP.

Реализация нескольких интерфейсов

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

<?php

// Объявление интерфейса

Пример интерфейса1

{

Публичная функция method1();

}

// Объявление другого интерфейса

Пример интерфейса2

{

Публичная функция method2();

}

//Класс, реализующий два объявленных выше интерфейса

класс class1 реализует пример1, пример2

{

// Определение метода интерфейса1

Метод публичной функции1

{

Эхо 'Внутренний интерфейс1, метод1';

}

//Определение метода interface2

Метод публичной функции2

{

Эхо 'Внутренний интерфейс2, метод2;

}

}

Obj1 = новый класс1;

Obj2 = новый класс2;

Объект1->метод1;

Объект2->метод2;

?>

Выход

Внутри интерфейса1 метод1

Внутри интерфейса2 метод2

Несколько замечаний о реализации нескольких интерфейсов

  • Все методы, объявленные в интерфейсе, должны быть общедоступными.
  • Функция не может иметь ключевое слово abstract.
  • Если программист забудет определить какую-либо функцию интерфейса, код выдаст ошибку.
  • Интерфейсы не могут содержать переменные.

Оформить заказ: концепции ООП в PHP

Разница между интерфейсом и абстрактным классом

Ниже приведены некоторые различия между интерфейсом и абстрактным классом:

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

Заключение

Интерфейс в PHP — это функция, которая позволяет пользователям объявлять общедоступные методы без определения. В этой статье объясняется вся информация об интерфейсе с его синтаксисом и примерами. Мы надеемся, что информация, представленная в этой статье, поможет вам понять концепцию. Вы можете изучить похожие темы, основанные на PHP, в блогах upGrad. Для более глубокого понимания вы можете записаться на сертификационный онлайн-курс по PHP на upGrad. upGrad предлагает множество сертификационных курсов, которые могут помочь вам в вашей карьере и обучении.

Если вам интересно узнать больше о разработке программного обеспечения с полным стеком, ознакомьтесь с дипломом PG upGrad & IIIT-B по разработке программного обеспечения с полным стеком, который предназначен для работающих профессионалов и предлагает более 500 часов интенсивного обучения, более 9 проектов и задания, статус выпускника IIIT-B, практические практические проекты и помощь в трудоустройстве в ведущих фирмах.

Станьте разработчиком полного стека

ДИПЛОМ UPGRAD И IIIT-BANGALORE PG В РАЗРАБОТКЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ПОЛНОГО СТЕКА
УЗНАТЬ БОЛЬШЕ