
آموزش برنامه نویسی PHP-جلسه هجدهم
در طراحی توابع یا شیها نیاز داریم فانکشن هایی داشته باشیم که کارکرد متفاوتی داشته باشند ولی اسامی یکسانی داشته باشند. این فانکشن در کلاس مادر وجود دارد که در طول برنامه توسط بچههای والد کارایی تابع را تعیین میکنند.
Abstract Classes
<?php
// Parent class
abstract class Car {
public $name;
public function __construct($name) {
$this->name = $name;
}
abstract public function intro() : string;
}
// Child classes
class Audi extends Car {
public function intro() : string {
return “Choose German quality! I’m an $this->name!”;
}
}
class Volvo extends Car {
public function intro() : string {
return “Proud to be Swedish! I’m a $this->name!”;
}
}
class Citroen extends Car {
public function intro() : string {
return “French extravagance! I’m a $this->name!”;
}
}
// Create objects from the child classes
$audi = new audi(“Audi”);
echo $audi->intro();
echo “<br>”;
$volvo = new volvo(“Volvo”);
echo $volvo->intro();
echo “<br>”;
$citroen = new citroen(“Citroen”);
echo $citroen->intro();
?>پیشنهاد ویژه ما: آموزش php
Interfaces
بسیار شبیه کلاسها هستند. اگر بخواهیم متغیرهایی را در طول کل برنامه استفاده کنیم از interface که رابط برقراری ارتباط بین کلاسها و متغیرهای مختلف هستند استفاده میکنیم. تا یکسری متغیرها و توابعی که کارکرد عمومی دارند را تعریف کنیم. برای ساخت interface کافیه یک اسم دلخواه را بنویسیم و قبلش یک interface قرار بدهیم.
<?php
// Interface definition
interface Animal {
public function makeSound();
}
// Class definitions
class Cat implements Animal {
public function makeSound() {
echo ” Meow “;
}
}
class Dog implements Animal {
public function makeSound() {
echo ” Bark “;
}
}
class Mouse implements Animal {
public function makeSound() {
echo ” Squeak “;
}
}
// Create a list of animals
$cat = new Cat();
$dog = new Dog();
$mouse = new Mouse();
$animals = array($cat, $dog, $mouse);
// Tell the animals to make a sound
foreach($animals as $animal) {
$animal->makeSound();
}
?>داخل interface توابع رو میسازیم هر جا لازمه برای کلاسی interface رو استفاده کنیم با کلمه implements اسم interface که همون Animal میآوریم. و اون تابع داخل این کلاسی قابل تعریف مجدد میشه. Interface کمک میکنه توابع یا متغیرهایی را بین کلاسهای مختلف ب اشتراک بگذارید.

مریم گوهرزاد
مدرس و بنیانگذار هلدینگ آرتا رسانه. برنامه نویس و محقق حوزه بلاکچین و توسعهدهنده بلاکچین | متخصص Solidity | توسعهدهنده وب Full-Stackمن یک توسعهدهنده علاقهمند به فناوریهای بلاکچین و وب ۳ هستم و در زمینه Solidity، توسعه قراردادهای هوشمند و ساخت برنامههای غیرمتمرکز (DApps) فعالیت میکنم. تمرکز من بر طراحی و پیادهسازی راهکارهایی است که در کنار بهرهگیری از فناوریهای نوین، عملکرد مناسب، امنیت و تجربه کاربری مطلوبی ارائه دهند.در مسیر حرفهای خود، تجربه کار با قراردادهای هوشمند و معماری راهکارهای مبتنی بر بلاکچین را به دست آوردهام و همواره تلاش میکنم دانش خود را با آخرین تغییرات و پیشرفتهای این حوزه بهروز نگه دارم. برای من، بلاکچین تنها یک فناوری جدید نیست؛ بلکه بستری برای ایجاد راهکارهای متفاوت و کاربردی در دنیای واقعی است.در کنار تخصص در حوزه بلاکچین، به عنوان یک توسعهدهنده وب Full-Stack نیز در طراحی و توسعه وبسایتها و برنامههای تحت وب فعالیت میکنم. تجربه کار در بخشهای Front-End و Back-End به من این امکان را داده است که پروژهها را از مرحله ایده و طراحی تا توسعه و اجرا، با دیدی جامع دنبال کنم. در فرآیند توسعه، توجه ویژهای به کدنویسی تمیز، معماری مناسب، طراحی واکنشگرا، عملکرد مطلوب و تجربه کاربری روان دارم.همیشه به دنبال یادگیری، تجربه فناوریهای جدید و پیدا کردن راههای بهتر برای حل مسائل فنی هستم. از مواجهه با چالشهای پیچیده استقبال میکنم و معتقدم بهترین نتایج زمانی شکل میگیرند که دانش فنی، خلاقیت و همکاری مؤثر در کنار یکدیگر قرار بگیرند.اگر به دنبال همکاری در یک پروژه بلاکچینی، Web3 یا توسعه وب هستید، خوشحال میشوم با یکدیگر در ارتباط باشیم و ایدهها را به راهکارهای واقعی و قابل اجرا تبدیل کنیم.



