
آموزش برنامه نویسی PHP-جلسه هفدهم
ویژگی ها ومتدها می توانند سطح دسترسی داشته باشند و به صورت های مختلف تعریف شوند.
Access Modifiers
در php سه نوع سطح دسترسی داریم که در ادامه هر کدام را بررسی میکنیم:
Public (عمومی)
در این سطح دسترسی تمام صفتها و توابع توسط Class یا Object دیگه ای قابل دسترسی هست.
Protected (محافظت شده)
در این سطح دسترسی از طریق کلاس اصلی و کلاسهایی که از آن کلاس ارث بری داشتهاند. امکان پذیر است.
Private (خصوصی)
دسترسی به عناصر فقط از طریق خود کلاس است.
<?php
class Fruit {
public $name;
protected $color;
private $weight;
}
$mango = new Fruit();
$mango->name = ‘Mango’; // OK
$mango->color = ‘Yellow’; // ERROR
$mango->weight = ‘300’; // ERROR
?>Inheritance
وراثت کمک میکنه یک شی بزرگی که تعریف شده و کلاس های نمونه از آن ایجاد شدهاند بتوانند ویژگی ها و خصوصیات را ازکلاس اصلی به ارث ببرند و یک سری وِیژگی ها و رفتارهای مخصوص به خود را داشته باشند. مثلا انسان به عنوان کلاس اصلی ویژگیهایی دارد مثل قد و وزن و رنگ پوست و …. حالا دانشجو، استاد دانشگاه هر کدام یک کلاس مشتق شده از انسان است و به علت انسان بودن ویژگی ها را نیز به ارث میبرند چون همگی قد و وزن و رنگ پوست را دارند و علاوه بر آن هر کدام به واسطه موقعیت خود می توانند رفتارهای مخصوص به خود را داشته باشند. برای اینکه یک کلاس بتواند از کلاس اصلی ارث بری کند از کلمه extends قبل از کلاس اصلی استفاده می کنیم. class Strawberry extends Fruit
در ادامه یک نمونه از ارث بری را ملاحظه میکنید:
<?php
class Fruit {
public $name;
public $color;
public function __construct($name, $color) {
$this->name = $name;
$this->color = $color;
}
public function intro() {
echo “The fruit is {$this->name} and the color is {$this->color}.”;
}
}
// Strawberry is inherited from Fruit
class Strawberry extends Fruit {
public function message() {
echo “Am I a fruit or a berry? “;
}
}
$strawberry = new Strawberry(“Strawberry”, “red”);
$strawberry->message();
$strawberry->intro();
?>گاهی وقتها علاوه بر ارث بری از شی می توانیم از Overriding Inherited Methods استفاده میکنیم. که به معنای دوباره بازنویسی کردن است. مثلا شی ای که داره ارث بری میکنه یک تابع با اسم مشترک با شی اصلی داشته باشد و موقع اجرا برنامه تابع مربوط به خود کلاس رو اجرا میکنه نه تابع تعریف شده در والد.
پیشنهاد ویژه: آموزش php
The final Keyword
اگر کلمه final قبل یک کلاس بیاد دیگر نمی توانیم از آن نمونه بگیریم یا بازنویسی کنیم. این ترفند زمانی به کار میآید که بخواهیم یک کلاس دستکاری نشود.

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



