Прошу сюда зайти

Загрузка Screenshot_2022-09-21-10-13-45-22_4641ebc0df1485bf6b47ebd018b5ee76.jpg

На практике интерфейсы используются в двух взаимодополняющих случаях:

Чтобы позволить разработчикам создавать объекты разных классов, которые могут использоваться взаимозаменяемо, поскольку они реализуют один и тот же интерфейс или интерфейсы. Типичный пример - несколько служб доступа к базе данных, несколько платёжных шлюзов или разных стратегий кеширования. Различные реализации могут быть заменены без каких-либо изменений в коде, который их использует.

ок

пон

Вот что пробовал

<?php

interface Test{
	public function get() : string;
}

class A implements Test{
	public function get() : string{
		return "test";
	}
}

class B extends A implements Test{
	public function get() : string{
		return "test 2";
	}
}

$a = new A();
$b = new B();

echo $a->get().PHP_EOL;

echo $b->get();

Ну блять не суть

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

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

1 симпатия

если класс реализует интерфейс, но не реализует его функцию

Fatal error: Class A contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (Test::get) in /home/user/scripts/code.php on line 6
1 симпатия

ты еблан))) я же пошутил, я не мип. я реакцию вашу проверял) убери меня.

Поздно, надо было молчать

ну поч