آموزش Interface

Image تحقیقات

آموزش Interface

با سلام و درود

امروز میخوام درباره interface در زبان php  صحبت کنم.

interface ها خیلی شباهت به کلاس های از نوع abstract دارند. (آموزش کلاس abstract  در php)

interface ها نباید  شامل هیچ بدنه یک تابع باشند و تابع های درون آن باید بدون بدنه باشند همگی. در صورتی که  abstract می توانستند ادغامی از توابع معمولی و توابع abstract (بدون بدنه) شوند.

از interface ها مانند  abstract نمیتوان نمونه یا شی ای ایجاد کرد.

 

interface به کلمه ی کلیدی extends از کلاس interface دیگری مشتق میگیرد.

کلاس معمولی با کلمه ی implements  از interface دیگری مشتق میگیرد.

مثال :

<?php
interface a
{
    public function foo();
}

interface b extends a
{
    public function baz(Baz $baz);
}

// This will work
class c implements b
{
    public function foo()
    {
    }

    public function baz(Baz $baz)
    {
    }
}
  •  در خط 2 یک interface تعریف شده است.
  • در خط 4 متدی تعریف شده به نام foo . چون داخل کلاسی از نوع Interface است پس نباید بدنه داشته باشد.
  • در خط 7 یک Interface تعریف شده و طبق قانون گفته شده با کلمه ی کلیدی extends از a مشتق شده است.
  • دز خط 13 کلاس معمولی c طبق قانون گفته شده  با کلمه کلیدی implements از b مشتق شده است.
  • در خط 15 و 19 توابعی تعریف شدن به همراه بدنه. زیرا کلاس c از دو interface مشتق شده است و باید بدنه های اون کلاس رو تکمیل کنه حتما.

مثال :

<?php
interface a
{
    public function foo();
}

interface b
{
    public function bar();
}

interface c extends a, b
{
    public function baz();
}

class d implements c
{
    public function foo()
    {
    }

    public function bar()
    {
    }

    public function baz()
    {
    }
}

 

  •  نکته مهم اش اینه که در خط 12 کلاس c تعریف شده که از دو اینترفیس مشتق شده و درون اون 3 متد تعریف شده ، برای اینکه کلاس هایی که ازشون متشق گرفته دارای این 3 متد بودن.

خب اینم از آموزش کلاس های interface