מילת המפתח this$
במדריך קודם ראינו שניתן לקבץ את הקוד של נושא מסוים ביחד במחלקה אחת, וזה כולל תכונות (משתנים של מחלקות) ומתודות (פונקציות של מחלקות). כך נראית המחלקה שיצרנו:
// המחלקה
class Car {
// התכונות
public $comp;
public $numWheels = 4;
public $hasSunRoof = true;
// המתודה
public function hello(){
return "beep";
}
}
וכך נראים האינסטנסים, שיוצרים אובייקטים שונים מאותה המחלקה.
// יצירת אובייקטים
$car1 = new Car ();
$car2 = new Car ();
מילת המפתח $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:
אהבתם? לא אהבתם? דרגו!
0 הצבעות, ממוצע 0 מתוך 5 כוכבים