Menu
Coddy logo textTech

מאפיינים

חלק מהיחידה תכנות מונחה עצמים במסלול ה-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) ייחודיים לכל אובייקט.

challenge icon

אתגר

קל

השלימו את המחלקה Student בקובץ student.php:

  1. הצהירו על מאפיין $school עם ערך ברירת מחדל "PHP Academy"
  2. הצהירו על המאפיינים $name ו-$age (ללא ערכי ברירת מחדל)
  3. הוסיפו מתודה בשם 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";
quiz iconבחנו את עצמכם

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

כל השיעורים ביחידה תכנות מונחה עצמים

תרגלו בעצמכם: קומפיילר PHP אונליין