ماهي فائدة public, private, protected,static؟

السلام عليكم ورحمة الله وبركاته

ماهي فائدة private و protected في php

لما لا نستخدم public دائما؟؟

ثانيا

مافائدة static في الكلاس

وشكرا...

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

تستخدم محددات الوصول لسهولة تتبع الكود وفهم آليه عمله لسهولة صيانته وحمايته قدر المستطاع من الأخطاء.

  • private تعني خاص، فأي مكون يُعرف على أنه خاص لا يمكن إستخدامه إلا داخل الفئة المعرف بها فقط فلا يمكن الوصول له من خلال كائن منشأ من هذه الفئة وأيضاً لا يمكن الوصول للمكونات الخاصة في حالة الوراثة.

  • protected تعني محمي، وهي أعم من السابقة فأي مكون يعرف على أنه محمي يمكن إستخدامه داخل نفس الفئة وفي حالة الوراثة فقط ولا يمكن الوصول لمكونات الفئة المحمية من خلال الكائن المنشأ من هذه الفئة.

  • public تعني عام ويمكن الوصول لجميع المكونات العامة داخل نفس الفئة وفي حالة الوراثة أو من خلال الكائن المنشأ من هذه الفئة.

  • static وتعني ثابت، فأي مكون يتم تعريفه على أنه ثابت يمكن الوصول إليه مباشراً من خلال :: بعد اسم الفئة دون الحاجة لإنشاء كائن من هذه الفئة.

مثلا عملت كلاس اتصال بقاعدة بيانات

ال mysql_connect بيكون private ولا public ولو خليته public ايش الأضرار الناتجة؟

ثانيا مافائدة static وليس طريقة استدعائها

لماذا قد استخدم static في الكلاس وشكرا

ال mysql_connect بيكون private ولا public ولو خليته public ايش الأضرار الناتجة؟

خذ مثالاً:

    class db
    {
        private $mysqli;
        private $host;
        private $user;
        private $password;
        private $db;

        private function __construct($host, $user, $password, $db)
        {
            $this->host = $host;
            $this->user = $user
            $this->password = $password;
            $this->db = $db;
            $this->connect();
        }

        private function connect()
        {
            $this->mysqli = new mysqli($this->host, $this->user, $this->password, $this->db);
            if (mysqli_connect_errno())
            {
                mysqli_connect_error();
            }
            else
            {
                return true;
            }
        }

        private function query($query)
        {
            return $this->mysqli->query($query);
        }

    }

الآن حاول إستخدام هذه الفئة.

ثانيا مافائدة static وليس طريقة استدعائها

لماذا قد استخدم static في الكلاس وشكرا

أجبتك عنه سابقاً

دون الحاجة لإنشاء كائن من هذه الفئة.

فيمكن إستخدام الخصائص والطرق الساكنة مباشراً دون الحاجة لإنشاء كائن من الفئة.

هل private & protected تخص security ؟ وتحمي من الهاكر ام ماذا ارجوا التوضيح وشكرا

  • لا الحماية هنا لا يقصد بها الحماية من هجمات المخترقين ولكن يقصد بها الحماية من الوصول للمكون بطريقة لا نريدها حتى يتم إحكام البرمجية وسهولة صيانتها وتتبع مسارها.