3391
مشاهدة
مشاهدة
![[4] إنشاء الكائنات Ùˆ إسناد القيم ÙÙŠ PHP](/posts/cast/icon?u=contents/2011_05_22/build-web-application-with-php-4.jpg&w=200&h=200)
[4] إنشاء الكائنات Ùˆ إسناد القيم ÙÙŠ PHP
ØªÙØ§ØµÙŠÙ„ الØÙ„قة
- المدة : ١١ دقيقة
- المستوى : متقدم
مقدمة :
الØÙ„قة الرابعة من سلسلة بناء تطبيقات الويب بلغة بي إتش بي عن كيÙية إنشاء Ø§Ù„ÙØ¦Ø§Øª وتكديس ( تعبئة ) البيانات ÙÙŠ الكائنات بشكل سريع ØÙŠÙ† إنشائها ØŒ قبل البدء لمتابعة الØÙ„قات السابقة عبر الروابطالØÙ„قة الأولى
أساسيات لغة بي اتش بي
برمجة الكائنات
أولاً: بناء Ø§Ù„ÙØ¦Ø©
قم ببناء ÙØ¦Ø© التدوينة وعر٠بها متغيرات خاصة للتدوينة كالرقم Ø§Ù„Ù…ÙØªØ§ØÙŠ Ùˆ العنوان ÙˆØ§Ù„Ù…ØØªÙˆÙ‰ Ùˆ إسم الكاتب ØŒ وجميع هذه الخواص ( المتغيرات ) تØÙ…Ù„ صلاØÙŠØ© خاصة private1 2 3 4 5 6 7 8 9 | <? php class Post { private $title ; private $body ; private $author ; private $id ; } ?> |
ثانياً: دالة البناء __construct()
هي Ø£ØØ¯Ù‰ الدوال Ø§Ù„Ø³ØØ±ÙŠØ© ÙÙŠ لغة بي اتش بي وهي أول دالة يتم استدعائها ØÙŠÙ† إنشاء كائن من ÙØ¦Ø© ÙˆÙŠØ³ØªÙØ§Ø¯ منها ÙÙŠ إسناد القيم الإبتدائية للمتغيرات ØÙŠÙ† إنشاء الكائنات او القيام بأي عملية ممكن ان Ù†ØØªØ§Ø¬ لعملها عندك انشاء الكائن وقبل استخدامه ÙÙŠ أي شي آخر ØŒ Ùˆ يكتب بالصيغة التالية :1 2 3 4 5 6 7 8 9 10 11 12 | <? php class Post { private $title ; private $body ; private $author ; private $id ; public function __construct( array $options = null ){ // the first method called when new object initiated } } ?> |
“ يتم إستدعاء دالة البناء ØÙŠÙ† إنشاء الكائن Ùˆ يمكن تمرير المتغيرات لها عبر وضعها بين أقواس إسم Ø§Ù„ÙØ¦Ø© ØÙŠÙ† على الشكل التالي "
$object = new Post("my Variable");
ثالثاً: دالة الهدم __desctruct()
هي أيضا Ø¥ØØ¯Ù‰ الدوال Ø§Ù„Ø³ØØ±ÙŠØ© ÙÙŠ لغة بي إتش بي وهي أخر دالة يتم استدعائها عندك انتهاء دورة ØÙŠØ§Ø© الكائن ÙÙŠ التطبيق .وتكتب بالصيغة التالية :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <? php class Post { private $title ; private $body ; private $author ; private $id ; public function __construct( array $options = null ){ // دالة البناء تستدعى كأول دالة ØÙŠÙ† الانشاء } public function __destruct(){ // دالة الهدم } } ?> |
رابعاً: بناء دوال الخواص ( setter and getter )
تبنى الخواص Ø¨Ù‡Ø¯Ù Ø§Ù„ØØµÙˆÙ„ على قيمة المتغيرات ذات الصلاØÙŠØ§Øª الخاصة Ùˆ المØÙ…ية بشكل غير مباشر ØŒ وتØÙ…Ù„ دوال الخواص صلاØÙŠØ© عامة public وذلك Ù„ØØ§Ø¬ØªÙ†Ø§ لإستدعائها بإستخدام اسم الكائن1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <? php public function setId( $value ){ $this ->id = $value ; } public function getId(){ return $this ->id; } public function setTitle( $value ){ $this ->title= $value ; } public function getTitle(){ return $this ->title; } . . . ?> |
خامساً: المصÙÙˆÙØ© Ø§Ù„Ù…ÙØªØ§ØÙŠØ©
المصÙÙˆÙØ§Øª ÙÙŠ لغة بي اتش بي تتص٠بمرونة كبيرة جدا ØŒ ØÙŠØ« يمكننا صناعة مصÙÙˆÙØ§Øª على شكل Ù…ÙØªØ§Ø وقيمة ØŒ ويكون الوصول لها بإسم المصÙÙˆÙØ© Ùˆ استخدام Ø§Ù„Ù…ÙØªØ§Ø كقيمة Ù…ÙØªØ§ØÙŠØ© ÙÙŠ المصÙÙˆÙØ© . وكما تتعدد أشكال جملة التكرار للوصول ØŒ للبيانات وقد أشرت سابقاً إلى تعرضنا بشكل أعمق للمصÙÙˆÙØ§Øª ØŒ أشرØÙ‡Ø§ بشكل سريع هنا :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <? php // المصÙÙˆÙØ© Ø§Ù„Ø£ØØ§Ø¯ÙŠØ© $normal = array (1, "Mohammed" ,2); foreach ( $normal as $row ): echo $row . " - " ; endforeach ; // output : 1 - Mohammed - 2 foreach ( $normal as $key => $row ){ // $key = index value of the element echo $key . " => " . $row . " " ; } // output : 0 => 1 1 => Mohammed 2 => 2 // المصÙÙˆÙØ© Ø§Ù„ÙØªØ§ØÙŠØ© $array = array ( 'index1' => 'value1' , 'index2' => 'value2' ); foreach ( $array as $index => $value ) echo $key . " => " . $row . " " ; // output : index1 => value1 index2=>value2 ?> |
سادساً: إنشاء الكائن بالبيانات
لابد من إرسال مصÙÙˆÙØ© Ù…ÙØªØ§ØÙŠØ© تØÙ…Ù„ إسم المتغير على سبيل المثال وقيمته إلى دالة البناء ØŒ ÙˆÙÙŠ دالة البناء ببناء جملة تكرار لقراءة المصÙÙˆÙØ© وثم استدعاء دالة الـ set الخاصة بذلك المتغير بشكل تلقائي Ùˆ ارسال القيمة الجديدة لها لتقوم بدورها باسناد القيمة لذلك المتغير ØŒ ويتم ذلك عن طريق دمج المقطع set مع Ø§Ù„Ù…ÙØªØ§Ø ÙÙŠ المصÙÙˆÙØ© المرسلة لينتج لنا اسم الدالة مخزنا ÙÙŠ متغير وثم نقوم بإستدعاء الدالة على الشكل التالي :1 2 3 4 5 6 7 8 | <? php $post = new Post( array ( 'Id' =>10, 'Title' => 'Magic Functions' )); echo $post ->getId(); echo "<br>" ; echo $post ->getTitle(); ?> |
الناتج النهائي Ù„Ù„ÙØ¦Ø© :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | <? php class Post { private $title ; private $body ; private $author ; private $id ; public function __construct( array $options = null ){ // the first method called when new object initiated if ( $options != null && is_array ( $options )){ $this ->setOptions( $options ); } } public function setOptions( $options ){ $method = "" ; foreach ( $options as $key => $value ){ $method = "set" . $key ; // auto call for setId , setTitle .. $this -> $method ( $value ); } } public function setId( $value ){ $this ->id = $value ; } public function getId(){ return $this ->id; } public function setTitle( $value ){ $this ->title= $value ; } public function getTitle(){ return $this ->title; } public function setAuthor( $value ){ $this ->author = $value ; } public function getAuthor(){ return $this ->author; } public function setBody( $value ){ $this ->body = $value ; } public function getBody(){ return $this ->body; } public function __destruct(){ // the final method } } $post = new Post( array ( 'Id' =>10, 'Title' => 'Magic Functions' )); echo $post ->getId(); echo "<br>" ; echo $post ->getTitle(); ?> |