وبلاگ پنوم

انواع سطوح دسترسی در php | تفاوت private و protected

در این مقاله، انواع سطوح دسترسی در PHP به طور کامل بررسی می‌شود. ما تفاوت‌های اصلی بین سطوح دسترسی private و protected را توضیح دادیم و نحوه استفاده از آن‌ها برای محافظت و مدیریت داده‌ها و متدهای کلاس‌ها در PHP را بررسی خواهیم کرد. این اطلاعات به شما کمک می‌کند تا کدهای PHP خود را بهینه و امن‌تر کنید و از ویژگی‌های شی‌گرایی به درستی بهره‌برداری کنید.

انواع سطوح دسترسی در php

به طور کلی در زبان برنامه نویسی php سه سطح دسترسی اصلی برای استفاده از فانکشن های و کلاس های php در نظر گرفته شده است که به شرح زیر است:
  1. public
  2. private
  3. protected

وراثت (Inheritance)

قبل از این که به صورت خاص به توضیح سطوح دسترسی در زبان php بپردازیم باید بدانید وراثت چیست؟ اگر یک کلاس داشته باشیم و در کلاس دیگری بخواهیم از کد ها یا ویژگی های مشابه استفاده کنیم این امر منطقی نیست که مجدد کد ها را تکرار کنیم. در چنین حالتی می توان کلاس جدید را فرزند کلاسی در نظر بگیریم که ویژگی ها و فانکشن های مد نظر در آن تعریف شده به عبارتی کلاس جدید از آن کلاس ارث بری می کند.

کلاس والد:

class Animal {
    public function makeSound() {
        return "Some sound";
    }
}
 

کلاس فرزند:

class Dog extends Animal {
    // بازنویسی متد makeSound
    public function makeSound() {
        return "Bark";
    }
}
در مثال بالا همان طور که مشخص است متد makeSound در کلاس والد تعریف و در کلاس فرزند با استفاده از اصل وراثت (Inheritance) از آن استفاده می شود. با درک این موضوع وقت آن رسیده است که هر یک از سطوح دسترسی در php را بررسی کنیم

سطح دسترسی public:

فانکشن و ویژگی هایی که این سطح دسترسی را دارند در کلاس به طور عمومی قابل دسترسی هستند. این موضوع به این معنی است که از هر جایی در برنامه، از جمله خارج از کلاس، می‌توان به آن‌ فانکشن یا ویژگی دسترسی پیدا کرد. پس با توجه به این موضوع این مورد مناسب برای ویژگی‌ها و متدهایی می باشد که نیاز است از هر جایی در برنامه به آن‌ها دسترسی داشته باشید.

سطح دسترسی private:

فانکشن و ویژگی هایی که ای سطح دسترسی را دارد تنها از داخل همان کلاس قابل دسترسی هستند. و از خارج از کلاس یا حتی از کلاس‌های فرزند هم  قابل دسترسی نیستند.

سطح دسترسی protected:

اگر شما یک متد داشته باشید که نیاز باشد این متد در کلاس های فرزند نیز استفاده شود. اما امکان استفاده آن در قسمت دیگری از برنامه وجود نداشته باشد این سطح دسترسی برای شما بسیار کاربردی می باشد. در واقع فانکشن و ویژگی هایی که این سطح دسترسی را دارند فقط از داخل کلاس و در کلاس‌های فرزند قابل دسترس هستند.

تفاوت private و protected در php:

اگر تا به این جای مقاله را مطالعه کرده باشید قطعا متوجه شده اید که مهم ترین تفاوت این دو سطح دسترسی چیست. در سطح دسترسی private ویژگی یا فانکشن مربوطه فقط در همان کلاس در دسترسی است اما در حالت protected علاوه بر کلاس والد در کلاس های فرزند هم در دسترسی می باشد.

جمع بندی

  • public: دسترسی کامل از هر جایی.
  • protected: دسترسی از داخل کلاس و کلاس‌های فرزند.
  • private: دسترسی فقط از داخل همان کلاس.
 

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *