בנאי (__construct)
חלק מהיחידה תכנות מונחה עצמים במסלול ה-PHP של Coddy. שיעור 7 מתוך 91.
השיטה __construct היא שיטה מיוחדת שרצה אוטומטית כשאתה יוצר אובייקט חדש. היא מאתחלת את המאפיינים של האובייקט.
הנה דוגמה למחלקה עם בנאי:
<?php
class Dog {
public $name;
public $breed;
public function __construct($name, $breed) {
$this->name = $name;
$this->breed = $breed;
}
}המתודה __construct מקבלת פרמטרים ומשייכת אותם למאפיינים באמצעות $this.
צרו אובייקטים באמצעות הבנאי:
$rex = new Dog("Rex", "German Shepherd");
$buddy = new Dog("Buddy", "Golden Retriever");כשאתה קורא ל־new Dog("Rex", "German Shepherd"), PHP קורא אוטומטית ל־__construct ומעביר את הארגומנטים.
גשו למאפיינים שהוגדרו על ידי הבנאי:
echo $rex->name . "\n";
echo $rex->breed . "\n";
echo $buddy->name . "\n";
echo $buddy->breed . "\n";פלט:
Rex
German Shepherd
Buddy
Golden Retrieverאפשר גם ליצור בנאי עם ערכי ברירת מחדל לפרמטרים:
class Cat {
public $name;
public $age;
public function __construct($name, $age = 1) {
$this->name = $name;
$this->age = $age;
}
}
$fluffy = new Cat("Fluffy", 3);
$whiskers = new Cat("Whiskers"); // ערך ברירת המחדל של age הוא 1
echo $fluffy->name . " is " . $fluffy->age . " years old\n";
echo $whiskers->name . " is " . $whiskers->age . " years old\n";פלט:
Fluffy is 3 years old
Whiskers is 1 years oldנקודה חשובה: המתודה __construct מבטיחה שכל אובייקט יוגדר כראוי עם הנתונים הראשוניים שלו בעת יצירתו. היא חוסכת ממך להגדיר מאפיינים ידנית לאחר יצירת האובייקט.
אתגר
קלניתנים לך קובצי PHP (book.php ו־driver.php) כדי לממש מערכת ספרים.
המשימה שלך היא:
- להשלים את המחלקה
Bookשבקובץbook.phpבאמצעות שיטת__constructשמאתחלת את המאפיינים$title,$authorו־$pages - בקובץ
driver.php, לייבא וליצור אובייקט ספר עבור"Harry Potter"מאת"J.K. Rowling", עם400עמודים
פעל לפי הערות ה־TODO בכל קובץ.
נסו בעצמכם
<?php
require_once 'book.php';
// TODO: צרו אובייקט Book עם:
// title: "Harry Potter", author: "J.K. Rowling", pages: 400
$myBook = ?;
echo "'" . $myBook->title . "' by " . $myBook->author . ", " . $myBook->pages . " pages\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 אונליין