داغ ترین ویدیو بابلز لرن : هک کلاس های مجازی توسط متین برونسی

ویژگی تصویر

آموزش Interface در PHP

  /  PHP   /  رابط ها در PHP
بنر تبلیغاتی الف
آموزش PHP

در این فصل به بررسی رابط ها در PHP می پردازیم، رابط ها یا همان interface در PHP مشابه کلاس های Abstract یا همان انتزاعی هستند.

interface ها به ما این اجازه را می دهند تا مشخص کنیم که کلاس ها باید چه متد هایی را پیاده سازی کند.

رابط ها استفاده از انواع کلاس های مختلف را با روشی مشابه آسان می کنند. هنگامی که یک یا چند کلاس از یک interface استفاده می کنند به آن polymorphism (چند ریختی) گفته می شود.

رابط ها در PHP با کلمه کلیدی interface اعلام می شوند.

نحوه استفاده

تماشا در حالت تمام صفحه

تفاوت بین کلاس های Abstract و Interface ها

تفاوتی بین کلاس های Abstract و Interface ها هست که عبارتند از:

  • interface ها نمی توانند پراپرتی (properties) داشته باشند، در حالی که کلاس های انتزاعی می توانند.
  • تمام متد های (methods) رابط ها باید public باشند، در حالی که متد های کلاس abstract عمومی یا محافظت شده (protected) هستند.
  • تمام متد ها در یک interface انتزاعی (abstract) هستند، بنابراین نیازی به پیاده سازی آنها نیست و نباید از کلمه کلیدی abstract استفاده کنیم.
  • کلاس های فرزند همزمان که دارند از یک کلاس والد ارث بری می کنند می توانند از interface ها نیز استفاده کنند.

استفاده از interface ها در PHP

برای پیاده سازی یک interface در یک کلاس باید از کلمه کلیدی implements استفاده کنید.

هنگامی که یک کلاس رابطی را implements می کند باید تمام متد های interface را در خودش پیاده سازی و اعلان کند.

مثال

تماشا در حالت تمام صفحه

خروجی

Meow

در مثال بالا ما یک رابط تعریف کرده ایم با نام Animal و یک متد داخل آن تعریف کرده ایم تحت عنوان makeSound() توجه داشته باشید که اکثر حیوانات دارای صوت یا صدا هستند که در واقع همین وجه مشترک آنها است اما صدای آنها با یک دیگر متفاوت است.

و با توجه به اینکه کلاس هایی که رابط ها را implements می کنند مجبور هستند متد های آن را نیز اعلان کنند ما توقع داریم که کلاس Cat متد makeSound() را طوری کد نویسی و اعلان کند تا خروجی آن صدای حیوان مورد نظر باشد.

پس در واقع با interface کدی نوشتیم که برای تمامی حیوانات کار می کند حتی اگر آنها با یکدیگر متفاوت باشند.

مثال


این قسمت/بخشی از محتوا مخفی شده است و فقط برای اعضای وب سایت قابل مشاهده می باشد، لطفاً با حساب کاربری وارد شوید.

خروجی

Meow Bark Squeak
توضیحات در رابطه با مثال بالا

کلاس های Cat و Dog و Mouse همگی رابط Animal را implements یا پیاده سازی می کنند، به این معنی که همه آنها می توانند با استفاده از متد makeSound() صدا تولید کنند.

به همین ترتیب می توانیم حلقه ای ایجاد کنیم و بدون اینکه در نظر بگیریم این صدا مال چه حیوانی است، صدا ها را تولید کنیم.

همچنین با توجه به اینکه رابط به کلاس ها نمی گوید که چگونه این متد را پیاده سازی کنند، هر حیوانی می تواند به روش خود صدایی تولید کند.

یعنی شما می توانید بجای متن ساده از تگ audio در HTML استفاده کنید و به این شکل صدا گذاری کنید، محدودیتی در این مورد وجود ندارد.

آیا این مطلب برای شما مفید بود ؟

خیر
بله
بنر تبلیغاتی ج