Learn Object Oriented PHP #05 - Class Properties

Learn about Class Properties

Baraaمنذ 5 سنوات

بسم الله الرحمن الرحيم والصلاة والسلام علي سيدنا محمد 

 

هنبدأ بقى ي جماعه ف الجد، ونبدأ نحط الخواص المطلوبه لكل class 

قولنا ان شركة apple بتعمل تصميم خاص ب iphone، ف هناخد ال iphone  على سبيل المثال ومش هنتعلق ب devices تانيه 

ال iphone  ده بيختلف من موديل للتانى فى iphone5,iphone6 iphone6plus كل واحد من دول غير التانى، على سبيل المثال المعلومات دى اكيد مش اكيده 

ال  iphone5 الرام بتاعه 3 جيجا، حجم الشاشه 5 ونص

ال iphone6 مثلا الرام بتاعه 4 والشاشه 6

الاتنين مختلفين تماما لكن الاتنين مشتركين ف نفس الخواص، اى هي نفس الخواص ان ليهم رام وليهم شاشه وليهم حاجه معينه بيشتركوا فيهم كلهم، لكن القيم بتاعتهم بتختلف من الفون للتانى 

هو ده م يسمى ب Properties او الخواص 

 

فى المثال :-  انا جيت فى class AppleDevic عاوز اعمل الخواص بتاعتى

class AppleDevic

هنكتب كومنت بسيط properties // الخواص بتاعتى بتعرفنى ال device بتاعت ال apple دى اى هي الخواص بتاعتها 

مش احنا قولنا ف الدرس الاول ان كل كائن انت هتنشه ف الدنيا من ال Class  ليه خواص العربيه ليها لون وموديل وليها خواص تخصها  

نفس القصه ف الايفون 

الايفون ي جماعه ليه ram .. حجم الرام 

ليه مثلا inch .. حجم الشاشه 

ليه بردو memory .. سعة التخزين    

دى الخواص بتاعت ال object  بتاعى 

الصوره توضح

 

الخواص دى ي جماعه ف البرمجه الكائنيه بتحتاج لحاجه اسمها public، public  دى عباره عن ايه ؟

ال public دى حاجه من علامات الظهور visibility 

- عندنا حاجه اسمها public

- عندنا حاجه اسمها privete

- عندنا حاجه اسمها prodected

التلاته دول هنشرحهم بالتفصيل وهتعرف الفرق م بينهم لكن المطلوب انك تبقى عارفهم 

بتعرف ال object  وال application بتاعك عاوز تكون متاحه للجميع ولا مكان معين مش هنتعمق ف القصه دى دلوقتى علشان يكون شرحها بتعمق ف وقتها 

لازم بس تعرف ان انت علشان تعرف ال Propertie بتكتب واحده من التلاته دول public، privete، prodected

ممكن لو انت اشتغل على تطبيق معمول ب oop قديم مثلا من اصدارات ال php4 ممكن تلاقى كلمه من الكلامات بدل public اسمها var 

ال var  ي جماعه لسه موجوده ف php وبتعبر عن كلمة public

لكن بعد م شالوها من اللغه رجعوها ف الاصدارات ال php  الجديده علشان لو حد عنده اصدار قديم مثلا او تطبيق معمول باصدار قديم ميحصلوش اى مشاكل والتطبيق بتاعه يقف

ف الكلمه لو انت شوفتها متقول اى ده انا اول مره اعرف الكلمه دى دا ال var دى بتاعت الجافا اسكريبت اى اللى جابها هنا ؟ لا هي موجوده هنا اطمن 

 

لغاية هنا الموضع جميل وصممت ال device بتاعتى معنيه اللى هي ال iphone وحطيت الخواص بتاعتها 

ولما اجى اصنع موبايل جديد باخد الخواص دى واشوف كل موبايل خواصه اى ف دول لاحظ ف الامثله السابقه كلها ان حاطط ال $ بتاعتى من غير value  يعنى مش كاتب     public $ram = " 2gb";
 ليه ؟ 

طب تمام لو جيت انا قولت ان الرام

	public $ram = " 2gb";

معنى كدا انك هتاخد ال properties دى لكل ال device لا انا م عايز كدا، انا بديك تصميم فاضى بديك مخطط مش بديك حاجه مرسومه يعنى بمعنى اصح بديك لوحة مرسومه بالقلم الرصاص وانت تلون 

ف انا بديك الخواص بس فاضيه وانت تاخد التصميم وتنشئ منه موبايل على حسب دماغك عاوز الرام يكون كام الشاشه حجمها اى الميموري سعته اد اى والخ

دى ي جماعه ال device وجييت انا عملت iphone6plus من ال class AppleDevice

وهنشوف زي م هو كدا 

class AppleDevice {

	// properties

	public $ram;
	public $inch;
	public $memory;
}

$iphone6plus = new AppleDevice ();

echo '<pre>';

var_dump($iphone6plus);

echo '</pre>';

 

دا الكود ونشوف الصوره تحت 

زي م انتوا شايفين جابلى ال object الاولانى اللى انا عملته object(AppleDevice)#1 فى 3 خواص وفاضين زي م انتوا شيفين NULL قيمه فاضيه مفيش اى حاجه لو انت حطيت قيمه اساسيه 

	public $ram = "2GB";

هتظهر كدا 

object(AppleDevice)#1 (3) {
  ["ram"]=>
  string(3) "2GB"
  ["inch"]=>
  NULL
  ["memory"]=>
  NULL
}

 

روحت ماسح ومرجعه لاصله تانى 

public $ram;

 حبيت انا اعمل فون جديد تانى اسمه  iphone7plus 

ببساطه جدا 

$iphone7plus = new AppleDevice ();

echo '<pre>';

var_dump($iphone7plus);

echo '</pre>';

طبعا من نفس ال class 

object(AppleDevice)#1 (3) {
  ["ram"]=>
  NULL
  ["inch"]=>
  NULL
  ["memory"]=>
  NULL
}
object(AppleDevice)#2 (3) {
 ["ram"]=>
 NULL 
 ["inch"]=>
 NULL
 ["memory"]=>
 NULL 
}

كدا عندنا اتنين اوبجيكت من ال appleDevice وكل واحد فيهم فيه خواصه اللى انا رسمتها ف المخطط بتاعى

ولو عملت ابديت مثلا وزودت خاصيه هتظهر ف الاتنين ولو شيت واحده هتتشال من التانيه بردو 

لغاية دلوقتى الموضوع بسيط ومفيش اى تعقيدات 

هنقول بس معلومه تخص الclass "اى Class  ف الدنيا بيبقى ليه properties "

 

 

فى نقطه هنا مهمه .. ف يوم من الايام ممكن تواجهك مشكله فى اسم ال class تبقى تخلى بالك وانت بتسمى اسم ال class ميكونش من الاسماء المحجوزه ف php

الclass بتاعك لازم يكون بعيد عن الكلمات المحجوزه ف اللغه، معتقدش ان انت الاسماء راحت من عندك علشان تاخد من الاسماء المحجوزه 

تقدر تدخل على موقع اللغه php.net وتشوف اى الاسماء المحجوزه 

انا جبتلك اللينك https://www.php.net/manual/en/reserved.php هو ده اللينك ادخل وشوف 

دى كانت معلومه على جنب كدا

 

يارب يكون المقال سهله ونتباع ان شاء الله ف المقال القادم 

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

كلمات دليلية: oop php
1
إعجاب
969
مشاهدات
0
مشاركة
1
متابع

التعليقات (0)

لايوجد لديك حساب في عالم البرمجة؟

تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !