מילת המפתח $this
חלק מהיחידה תכנות מונחה עצמים במסלול ה-PHP של Coddy. שיעור 4 מתוך 91.
מילת המפתח $this מתייחסת למופע הנוכחי של מחלקה בתוך המתודות שלה. היא מאפשרת לך לגשת למאפיינים של האובייקט הנוכחי ולשנות אותם.
הנה דוגמה למחלקה עם מתודות המשתמשות ב־$this:
<?php
class Car {
public $color;
public $model;
public function honk() {
echo "Beep beep!\n";
}
public function describe() {
echo "I am a " . $this->color . " " . $this->model . "\n";
}
}מילת המפתח $this משמשת בתוך מתודות כדי להתייחס לאובייקט שקרא למתודה.
צרו אובייקט של מכונית והגדירו את המאפיינים:
$myCar = new Car();
$myCar->color = "Red";
$myCar->model = "Sedan";עכשיו קראו למתודות:
$myCar->honk();
$myCar->describe();פלט:
Beep beep!
I am a Red Sedanכשקוראים ל־$myCar->describe(), PHP מגדיר אוטומטית את $this כך שיפנה אל $myCar. כך המתודה יודעת לאילו מאפיינים של האובייקט לגשת.
אם היה לך אובייקט של מכונית נוספת:
$otherCar = new Car();
$otherCar->color = "Blue";
$otherCar->model = "SUV";
$otherCar->describe(); // אני Blue SUVנקודה חשובה: $this תמיד מתייחס לאובייקט המסוים שקרא למתודה. לכל אובייקט יש הקשר משלו בעת הפעלת מתודה.
אתגר
קלהשלימו את המחלקה Car בקובץ car.php על ידי הוספת מתודה בשם displayInfo שמשתמשת במילת המפתח $this כדי להדפיס את השנה, היצרן והדגם של המכונית בפורמט:
"This car is a [year] [make] [model]"
car.php: מכיל את הגדרת המחלקהCar, שבה תוסיפו את המתודהdisplayInfodriver.php: קובץ ההרצה הראשי שמייבא את המחלקהCarומשתמש בה (נעול)
נסו בעצמכם
<?php
require_once 'car.php';
$myCar = new Car();
$myCar->year = 2020;
$myCar->make = "Toyota";
$myCar->model = "Corolla";
$myCar->displayInfo();
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה תכנות מונחה עצמים
1יסודות התכנות מונחה העצמים (OOP)
קבצים חיצונייםמבוא ל-OOPמחלקות לעומת אובייקטיםמילת המפתח $thisמתודותמאפייניםבנאי (__construct)הורס (__destruct)חזרה: מחשבון פשוט4ירושה
ירושה בסיסיתמילת המפתח parent::דריסת מתודותמילת המפתח finalמחלקות מופשטותסיכום – היררכיית עובדים7כימוס
ציבורי, מוגן, פרטימפרטי גישה לעומקמתודות גישה ועדכוןהסתרת מידעקידום פרמטרים בבנאי (8.0)סיכום – מערכת רישומי תלמידים2מרחבי שמות וטעינה אוטומטית
מבוא למרחבי שמותמילת המפתח useתקן הטעינה האוטומטית PSR-4הטוען האוטומטי של Composerסיכום – פרויקט מאורגן5ממשקים וחוזים
מבוא לממשקיםמימוש ממשקיםמימוש של כמה ממשקיםממשק לעומת מחלקה מופשטתרמזי טיפוסים עם ממשקיםסיכום - מחשבון צורות8מתודות קסם
מבוא למתודות קסם__toString ו־__debugInfo__get, __set, __isset, __unset__call ו־__callStatic__clone ושיבוט אובייקטים__serialize ו־__unserializeסיכום – אוסף מותאם אישית3מאפייני מחלקה
מאפייני מופע לעומת מאפיינים סטטייםקבועים במחלקותמתודות ומאפיינים סטטייםמאפיינים פרטיים ומוגניםמאפיינים לקריאה בלבד (PHP 8.1)סיכום – מנהל חשבון בנק6פולימורפיזם
בחינה מחדש של דריסת מתודותפולימורפיזם באמצעות ממשקיםרמזי טיפוסים וטיפוסי איחודקישור סטטי מאוחרסיכום — מעבד תשלומיםתרגלו בעצמכם: קומפיילר PHP אונליין