Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Antara Muka PHP

Antara Muka PHP

WBOY
WBOYasal
2024-08-29 13:00:281147semak imbas

Antara Muka PHP membantu kami membuat atur cara yang berguna, menunjukkan kaedah awam kelas yang mesti dilaksanakan tanpa memasukkan kerumitan dan cara kaedah khusus kami akan dilaksanakan. Antara Muka PHP hanya akan mentakrifkan hujah dan nama dan bukannya kandungan kaedah, dan mana-mana kelas yang melaksanakan antara muka perlu melaksanakan semua kaedah yang ditakrifkan oleh antara muka.

IKLAN Kursus Popular dalam kategori ini PEMBANGUN PHP - Pengkhususan | 8 Siri Kursus | 3 Ujian Olok-olok

Mulakan Kursus Pembangunan Perisian Percuma Anda

Pembangunan web, bahasa pengaturcaraan, ujian perisian & lain-lain

Antara muka ini serupa dengan kelas, tetapi hanya frasa kelas akan digantikan dengan kata kunci antara muka dalam pengisytiharan.

Sintaks:

<?php
Interface interface_name
{
//List of methods
}
?>

Mengapa Kita Memerlukan Antara Muka PHP?

Ia boleh melaksanakan satu antara muka dalam kelas yang sama tetapi membuat lebih banyak antara muka dalam kelas yang sama. Kelas boleh melaksanakan kaedah khusus dengan antara muka Objek PHP tanpa dihadkan cara melaksanakannya. Antara muka adalah sama atau serupa dengan kelas, tetapi kata kunci antara muka PHP menggantikan kata kunci kelas tanpa menggunakan sebarang kaedah dengan kandungannya ditakrifkan. Anda boleh mengisytiharkan pembina dalam antara muka. Kelas atau Kelas boleh melaksanakan berbilang antara muka apabila diperlukan dengan mengasingkan setiap antara muka dengan koma.

Anda boleh melanjutkan kelas dalam Bahasa Pengaturcaraan PHP menggunakan operasi "lanjutkan". Antara Muka PHP ialah tahap abstraksi seterusnya. Ia serupa dengan kelas abstrak, tetapi terdapat sedikit perbezaan. Antara Muka atau Antara Muka membolehkan anda mencipta kod, yang berguna untuk menentukan kaedah kelas, tetapi anda tidak boleh menambah sebarang kod pada kaedah tersebut, manakala kelas abstrak membenarkan perkara yang sama atau serupa seperti antara muka atau antara muka PHP tetapi dalam kelas abstrak, seseorang boleh menambah kod pada kaedah atau kaedah.

Mengusahakan Antara Muka PHP

Versi lama sebelum PHP 5.3.9 tidak dapat melaksanakan hanya dua antara muka dengan nama yang sama kerana ia akan menyebabkan beberapa kesamaran. Paling penting, versi PHP terkini membenarkan kaedah pendua dengan tandatangan yang sama/serupa. Kelas yang melaksanakan antara muka harus menggunakan tandatangan kaedah yang serasi dengan "Prinsip Penggantian Liskov - LSP." Akan ada ralat maut dalam keputusan jika tandatangan kaedah tidak digunakan.

Kelas akan menggunakan antara muka untuk menambah kandungan pada kaedahnya, yang terdiri semata-mata daripada kaedah tanpa sebarang kandungan sedia ada. Kaedah dalam antara muka kebanyakannya boleh dilihat oleh orang ramai tanpa sekatan. Antara muka PHP tidak sama/serupa dengan kelas. Kelas boleh mewarisi banyak/berbilang antara muka, tetapi kelas boleh mewarisi hanya satu kelas pada satu masa. Ia mempunyai kelebihan ini juga. Pembolehubah hadir di dalam antara muka/antara muka.

Contoh Antara Muka PHP

Di bawah ialah contoh Antara Muka PHP:

Contoh #1

Dalam contoh di bawah, kami mengisytiharkan antara muka bernama "MyInterfaceName1" dengan hanya dua kaedah yang disebut. Ia adalah kaedah11 dan kaedah21 di dalam antara muka tanpa menggunakan sebarang kandungan. Kemudian kelas bernama "MyClassName1" akan melaksanakan antara muka "MyInterfaceName1" dan menggunakan kaedah yang tersedia berdasarkan keperluan.

Seperti definisi yang dinyatakan, antara muka juga terdiri daripada kaedah tanpa kandungan. Semasa pelaksanaan antara muka, kami akan membincangkan kandungan hanya di dalam kelas. Kadangkala, orang merujuk kepada kaedah antara muka ini sebagai kaedah abstrak.

Kod:

<?php
interface MyInterfaceName1{
public function method11();
public function method21();
}
class MyClassName1 implements MyInterfaceName1{
public function method11(){
echo "Now Method11 Called" . "<br>";
}
public function method21(){
echo "Now Method21 Called". "\n";
}
}
$obj = new MyClassName1;
$obj->method11();
$obj->method21();
?>

Output:

Antara Muka PHP

Contoh #2

Atur cara di bawah mengandungi dua antara muka, setiap satu dengan kaedahnya sendiri. Kemudian burung kelas dibuat dengan kaedah yang dipanggil info(). Kini kelas Dove meluas ke Class Bird, yang melaksanakan Antara Muka PHP CanFly untuk mendapatkan penyata cetakan kerana kenyataan cetakan/lain-lain tidak akan hadir di dalam antara muka kerana ia hanya mempunyai kaedah.

Berdasarkan ciri-ciri antara muka Bird 2 dibuat, “CanFly” dan “CanSwim” dengan 1 kaedah dalam setiap satu. Mereka adalah fly() dan swim(). Kaedah "info()" dalam kelas "Burung" mencetak/menggemakan penyataan untuk menentukan jenis burung dan jika ia memang burung. Panjangkan kelas "burung" dan laksanakan antara muka "CanFly" dan "CanSwim" untuk meletakkan butiran burung seperti Dove, Penguin dan Duck satu demi satu dalam pembolehubah "$name1". Selain itu, tambahkan pernyataan gema untuk antara muka.

We have created a function named “describe($bird)” that utilizes the “CanFly” and “CanSwim” interfaces to determine if a creature is a bird. If the $ bird doesn’t satisfy the fly() and swim(), the else condition exists in the PHP program’s output. Now calling all the described functions with the 3 bird classes. You will get the output of the 3 birds as needed. Check out below. It is a simple description, but you will know how it is happening if you look at the code and output of the PHP Program below.

Code:

<?php
/**
* This is An example of the duck typing in the PHP Script
*/
interface CanFly1 {
public function fly1();
}
interface CanSwim1 {
public function swim1();
}
class Bird1 {
public function info1() {
echo "I am a {$this->name1}\n";
echo "I am a bird\n";
}
}
/**
* This is some of the implementations of the birds
*/
class Dove1 extends Bird1 implements CanFly1 {
var $name1 = "Dove";
public function fly1() {
echo "I fly\n";
}
}
class Penguin1 extends Bird1 implements CanSwim1 {
var $name1 = "Penguin";
public function swim1() {
echo "I swim\n";
}
}
class Duck1 extends Bird1 implements CanFly1, CanSwim1 {
var $name1 = "Duck";
public function fly1() {
echo "I fly\n";
}
public function swim1() {
echo "I swim\n";
}
}
/**
* This is one of the simple function which is to describe a bird
*/
function describe1($bird1) {
if ($bird1 instanceof Bird1) {
$bird1->info1();
if ($bird1 instanceof CanFly1) {
$bird1->fly1();
}
if ($bird1 instanceof CanSwim1) {
$bird1->swim1();
}
} else {
die("This is not a bird. I cannot describe it.");
}
}
// Now describing the birds
describe1(new Penguin1);
echo "---\n<br>";
describe1(new Dove1);
echo "---\n<br>";
describe1(new Duck1);

Output:

Antara Muka PHP

Advantages

Following are some of the advantages given.

  • It will allow the unrelated classes to implement similar methods without considering their positions in the class with an inheritance hierarchy.
  • We can model many inheritances in this approach by implementing multiple interfaces in a class, but the class can only extend one class.
  • It can implement an inheritance which can save the caller from the implementation of the object methods fully. This implementation of the heritance concept is also helpful to focus on the object’s interface so that the caller interface doesn’t even affect it.

Recommended Article

This is a guide to the PHP Interface. Here we discuss the PHP Interface, its Advantages, and its various examples to understand the PHP Interface concept briefly. You can also go through our other suggested articles to learn more –

  1. PHP Encryption
  2. PHP Frameworks
  3. Abstract Class in PHP
  4. PHP Superglobal Variables

Atas ialah kandungan terperinci Antara Muka PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:PHP zip ArkibArtikel seterusnya:PHP zip Arkib