الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

البرمجة الكائنية الموجهة في Php5

مغلق
بدأه SIFE في 17 ديسمبر 2007 · 3 رد · 1,140 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم و رحمة الله و بركاته أما بعد تعد البرمجة الكائنية الموجهة OOP من أقوى الخصائص التي تحويها أي لغة برمجة و قد ظهرت هذه الخاصية في PHP4 أولا و من ثم تم إعادة بنائها و تطويرها في PHP5 حيث إحتوت على خصائص جديدة أما فائدتها فهي تقسيم البرامج الكبيرة ،إختصار الوقت و إمكانية إستدعاء الكائن في أكثر من مشروع مع سهولة في تعقب الأخطاء فلنبدأ على بركة الله .

أولا لإنشاء كائن فإننا نكتب الآتي :

class Learn 
 { 

 }

الآن أنشأنا الكائن ما زال علينا تحديد الخواص فالكل كائن خواص تكون فيه ضرورية على حسب المشروع المراد إستدعائه فيها مثل الأستاذ و الطالب فتجد أن الطالب له خصائص أهمها : السمع و طرح الإستفسارات أما الأستاذ فهو المتكلم الشارح للدرس و المجيب على الإستفسارات لكن نحن في PHP فيلزم علينا تعريف الخواص بالكلمة var بعدها المتغير:

class Learn 
 { 
  var $first; 
 }

يمكنك أيضا اللإعلان عن الثوابت بالتالي :

class Learn 
 { 
  const Age; 
 }

عرفنا طريقة تحديد الخواص بقي علينا تحديد الأفعال التي هي نفسها الدوال :

class Learn 
 { 
  var $first; 
  function show() 
   { 

   }   
 }

بقي علينا ربط الخواص بالأفعال حتى يتم تنفيذ المطلوب :

class Learn 
 { 
  var $name="I 'm Learning OOP"; 
  function show() 
   { 
   echo "$this->first"; 
   }   
 }

لاحظ الكلمة الجديدة <-this$ التي مهمتها إستدعاء المتغيرات داخل الكائن و لا يمكن كتابة الآتي عند إستدعاء المتغير من داخل الكائن :

class Learn 
 { 
  var $first="I 'm Learning OOP"; 
  function show() 
   { 
   echo "$this->$first"; 
   }   
 }

و أخيرا طريقة إستخدام الكائن هنا إن شاء الله سنستدعيه و نستغله بالطبع في الأحسن هاهاهاها حيث يتم إستدعائه بالكلمة new يليها إسم الكائن وهذا مثال :

$call=new Learn;

أما لو أردنا إستخدام خواص أو أفعال الكائن أو حتى التعديل عليها فإننا نكتب الآتي :

$call->show();

و فيما يلي مثال شامل نقوم فيه بإستحداث كائن و من إستدعائه :

<? 
class Learn 
 { 
  var $first="I 'm Learning OOP"; 
  function show() 
   { 
   echo "$this->first"; 
   }   
 } 
 $call=new Learn; 
 $call->show(); 
?>

هذا هو لب الدرس إن لم تكن هناك إستفسارات سأكمل إن شاء الله و أعذروني على الشرح المختصر حتى لا يكون شرحي ممل و لا أحرق المزيد من طاقتي فأصبح نحيف هاهاهاهاها .

''‏اللهم إني أسالك إيمانا دائما وأسألك قلبا خاشعا وأسألك علما ‏نافعا وأسألك يقينا صادقا وأسألك دينا قيما وأسألك العافية من كل ‏بلية''

'‏اللهم أغفر للمؤمنين و المؤمنات و المسلمين و المسلمات الأحياء ‏منهم و الأموات'

www.it-scoop.com

#2

السلام عليكم نكمل ما سبق لكن هذه المرة سنتحدث عن الوراثة التي من فائدتها عدم تكرار الكتابة أو بالأحرى عدم تكرار كتابة الكائنات فمثلا لو أردنا أن نكتب كائن جديد يحتوي على نفس خصائص الكائن الأول لكن متميز عن الأول فسنكتب الآتي :

<? 
class c1 
 { 
  var $ss=1234567890; 
 } 
class c2 extends c1 
 { 
  function sife() 
   { 
	echo $this->ss; 
   } 
 } 

$dd= new c2; 
$dd->sife(); 
?>

لاحظ أنه للإرث من الكائن فإننا نكتب الآتي extends ،الكائن الوارث يحتوي على جميع خصائص الكائن المورث منه أما العكس فهو غير صحيح .

لنفرض أنك تريد من كائنك أن يقوم بعمل بمجرد إستدعائه مثل التحقق من إستدعائه بنجاح فإنك ستستعمل الدلة construct التي مهمتها القيام بعمل بمجرد إستدعاء الكائن و كأنه الوضع الإفتراضي فنكتب الآتـــــي :

function __construct()

مثال :

<? 
class c1 
 { 
  var $ss='تم إستدعاء الكائن بنجاح'; 
 } 
class c1 
 { 
  function __construct() 
   { 
	echo $this->ss; 
   } 
 } 

$dd= new c1; 
?>

أما الدالة ()destruct__ فهي لمحي كائن من الذاكرة مثلها مثل الدالة()unset لمسح متغير من الذاكرة .

يمكن نسخ الكائن و إستعماله بمتغير آخر وذلك بالكلمة clone .

clone class;

مثال :

<? 
class c1 
 { 
  var $ss=1234567890; 
  function sife() 
   { 
	echo $this->ss; 
   } 
 } 
$dd= new c1; 
$ssd=clone $dd; 
$ssd->sife(); 
?>

هناك كلمات أخرى تستخدم قبل الخصائص و الدوال قصد التحكم في الكائن أكثر من حيث يمكن إستدعاء دواله من خارج الكائن أم لا و أشياء أخرى .

private : تجعل المتغير الذي تحتها لا يمكن الوصول إليه لا من خارج الكائن أو من الوريث فقد من داخل الكائن مثل الشخص المحافظ .

public : وهي الوضع الإفتراضي للكائن تسمح بكل شيئ مثلها مثل root .

protected : لا يمكن الوصول إليها إلا من داخل الوريث مثلها مثل الشخص الأناني يميز نفسه عن الآخرين .

هكذا نكون إنتهينا من OOP لم يبقى سوى تجريد الكائن على حد علمي الذي لم أفهمه ،أتمنى من أحد الأعضاء شرحه لنا .

''‏اللهم إني أسالك إيمانا دائما وأسألك قلبا خاشعا وأسألك علما ‏نافعا وأسألك يقينا صادقا وأسألك دينا قيما وأسألك العافية من كل ‏بلية''

'‏اللهم أغفر للمؤمنين و المؤمنات و المسلمين و المسلمات الأحياء ‏منهم و الأموات'

www.it-scoop.com

#3

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

اخي الكريم SIFE :

تشكر على هذا الدرس الجميل وجزاك الله خير .

تم تعديل هذه المشاركة بواسطة عدوووون في 25 ديسمبر 2007 في 21:50

سبحان الله والحمد لله ولا اله الا الله و الله اكبر

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

#4

أخي ممكن تشرح لنا تجريد الكائن مع مثال و مكان الإستخدام

''‏اللهم إني أسالك إيمانا دائما وأسألك قلبا خاشعا وأسألك علما ‏نافعا وأسألك يقينا صادقا وأسألك دينا قيما وأسألك العافية من كل ‏بلية''

'‏اللهم أغفر للمؤمنين و المؤمنات و المسلمين و المسلمات الأحياء ‏منهم و الأموات'

www.it-scoop.com

هذا الموضوع مغلق.

مواضيع مشابهة