נגישות       נגישות
שינוי גודל טקסט:
א א א
שינוי צבעי האתר:
? מקשי קיצור:

לחיצה חוזרת ונשנית על המקש Tab תעביר אתכם בין הקישורים והאזורים השונים בעמוד.

הפעלת מקשי הקיצור תלויה בדפדפן שבו אתם משתמשים.

Internet Explorer, Chrome ובגרסאות ישנות של Firefox: לחצו על מקש Alt ועל מקש המספר או האות על-פי הרשימה. ב Firefox 3 ומעלה: לחצו על המקשים Alt + Shift + המספר או האות.

S - עבור לתוכן הדף
L - חיפוש
1- עמוד הבית
2 - פרוייקטים
3 - מדריכים
4 - אודות
5 - צרו קשר
6 - הצהרת נגישות
 

מילת המפתח this$

מחבר:
בתאריך:

במדריך קודם ראינו שניתן לקבץ את הקוד של נושא מסוים ביחד במחלקה אחת, וזה כולל תכונות (משתנים של מחלקות) ומתודות (פונקציות של מחלקות). כך נראית המחלקה שיצרנו:

// המחלקה
class Car {
          //        התכונות  
         public $comp;
         public $numWheels = 4;
         public $hasSunRoof = true;
          //        המתודה  
         public function hello(){
                 return "beep";
         }
}

 

וכך נראים האינסטנסים, שיוצרים אובייקטים שונים מאותה המחלקה.

// יצירת אובייקטים
$car1 = new Car ();
$car2 = new Car ();

 

eBook cover The essentials of Object Oriented PHP

 

מילת המפתח $this

מילת המפתח $this מאפשרת למתודות בתוך האובייקט לגשת לתכונותיו של האובייקט ולמתודות שלו. זה התחביר:

$this -> שם_התכונה
$this -> שם_המתודה()

שימו לב, שפונים לתכונות ללא ה-$.

זה נחוץ מפני שמתודות, כמו כל פונקציה של PHP, אינן רשאיות לגשת לתכונות ולמתודות מחוץ לתחומן, ואחת הדרכים לפתור את הנושא היא באמצעות מילת המפתח $this.

נדגים את הנושא על המחלקה Car שיצרנו, בכך שנאפשר למתודה hello() לגשת לתכונות.

comp$                 באמצעות           this -> comp$,

numWheels$       באמצעות       this -> numWheels$.

 

כך זה נראה:

class Car {
           //         התכונות  
         public $comp;
         public $numWheels = 4;
         public $hasSunRoof = true;
           //         המתודה  
         public function hello(){
                 return "beep I am a <i>" . $this -> comp . "</i>, and I have <i>" . $this -> numWheels . "</i> wheels." ;
         }
}

 

ניצור את האובייקטים מהמחלקה:

// יצירת אובייקטים
$car1 = new Car ();
$car2 = new Car ();

 

ונזין את האובייקטים בערכים.

$car1 -> numWheels = 5;
$car1 -> comp = "BMW";
$car2 -> comp = "Mercedes Benz";

 

עכשיו אנחנו יכולים להפעיל את המתודה hello() עבור האובייקט הראשון.

echo $car1 -> hello();

 

והתוצאה היא:

Beep I am a BMW, and I have 5 wheels.

 

נפעיל את המתודה גם עבור האובייקט השני.

echo $car2 -> hello();

 

והתוצאה היא:

Beep I am a Mercedes Benz, and I have 4 wheels.

 

לסיכום, הקוד המלא ששימש במדריך:

<?php
// המחלקה
class Car {
        // התכונות  
        public $comp;
        public $numWheels = 4;
        public $hasSunRoof = true;
        //  $this הגישה לתכונות מתוך המתודה אפשרית באמצעות
        public function hello(){
                return "beep I am a <i>" . $this -> comp . "</i>, and I have <i>" . $this -> numWheels . "</i> wheels." ;
        }
}
 
// יצירת אינסטנסים
$car1 = new Car ();
$car2 = new Car ();
 
// הזנת האובייקטים בערכים
$car1 -> numWheels = 5;
$car1 -> comp = "BMW";
$car2 -> comp = "Mercedes Benz";
 
// גישה למתודות
echo $car1 -> hello();
echo "<br />";
echo $car2 -> hello();
?>

 

המדריך מבוסס על "The essentials of Object Oriented PHP" שמלמד PHP מונחה עצמים באמצעות דוגמאות ותרגילים הקליקו על התמונה כדי לרכוש את ה-eBook:

eBook cover The essentials of Object Oriented PHP

 

לכל מדריכי ה-PHP מונחה עצמים

 

הוסף תגובה חדשה

 

= 5 + 8