מאפיינים
חלק מהיחידה תכנות מונחה עצמים במסלול ה-PHP של Coddy. שיעור 6 מתוך 91.
מאפיינים הם משתנים ששייכים למחלקה. הם מאחסנים מידע על מצב האובייקט. ב-PHP, יש להצהיר על מאפיינים בתוך המחלקה באמצעות מילת מפתח לציון רמת הנגישות, כגון public.
למאפיינים יכולים להיות ערכי ברירת מחדל: כל אובייקט חדש מתחיל עם אותו ערך התחלתי, אבל כל אובייקט שומר עותק עצמאי משלו:
<?php
class Student {
public $school = "PHP Academy"; // ערך ברירת מחדל
public $name;
public $age;
}מאפיינים ללא ערך ברירת מחדל מתחילים כ-null עד שמגדירים אותם.
אפשר להגדיר ערכי מאפיינים באמצעות מתודה ו־$this:
class Student {
public $school = "PHP Academy";
public $name;
public $age;
public function setInfo($name, $age) {
$this->name = $name; // הגדר את נתוני המופע
$this->age = $age; // הגדר את נתוני המופע
}
}צרו אובייקטים של תלמידים והגדירו את הנתונים האישיים שלהם:
$student1 = new Student();
$student2 = new Student();
$student1->setInfo("Alice", 20);
$student2->setInfo("Bob", 22);גישה למאפיינים:
echo $student1->name . "\n"; // Alice
echo $student2->name . "\n"; // Bob
echo $student1->school . "\n"; // PHP Academy
echo $student2->school . "\n"; // PHP Academyפלט:
Alice
Bob
PHP Academy
PHP Academyההבדל העיקרי: מאפיינים עם ערכי ברירת מחדל (כמו $school) מתחילים עם אותו ערך בכל אובייקט. מאפיינים שמוגדרים באמצעות מתודות (כמו $name ו-$age) ייחודיים לכל אובייקט.
אתגר
קלהשלימו את המחלקה Student בקובץ student.php:
- הצהירו על מאפיין
$schoolעם ערך ברירת מחדל"PHP Academy" - הצהירו על המאפיינים
$nameו-$age(ללא ערכי ברירת מחדל) - הוסיפו מתודה בשם
setInfoשמקבלת את הפרמטרים$nameו-$ageומגדירה אותם באמצעות$this
הקובץ driver.php יבדוק את המחלקה שלכם על ידי יצירת שני תלמידים והדפסת המידע שלהם.
נסו בעצמכם
<?php
require_once 'student.php';
$student1 = new Student();
$student2 = new Student();
$student1->setInfo("Alice", 20);
$student2->setInfo("Bob", 22);
echo $student1->name . " is " . $student1->age . " at " . $student1->school . "\n";
echo $student2->name . " is " . $student2->age . " at " . $student2->school . "\n";
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה תכנות מונחה עצמים
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 אונליין