Menu
Coddy logo textTech

プロパティ

CoddyのPHPジャーニー「オブジェクト指向プログラミング」セクションの一部 — レッスン 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.php 内の Student クラスを完成させてください:

  1. デフォルト値を "PHP Academy" としたプロパティ $school を宣言してください。
  2. プロパティ $name$age を宣言してください(デフォルト値なし)。
  3. $name$age を引数に取り、$this を使用してそれらを設定する setInfo メソッドを追加してください。

driver.php ファイルは、2人の生徒を作成し、その情報を出力することでクラスをテストします。

チートシート

プロパティはクラスに属する変数であり、オブジェクトの状態に関する情報を格納します。これらは、publicのような可視性キーワードを使用してクラス内で宣言する必要があります。

プロパティには、すべてのオブジェクトで共有されるデフォルト値を設定できます。

<?php
class Student {
    public $school = "PHP Academy";  // default value
    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();
$student1->setInfo("Alice", 20);

echo $student1->name;    // Alice
echo $student1->school;  // PHP Academy

デフォルト値を持つプロパティは、すべてのオブジェクトで同じ状態で開始されます。メソッドを通じて設定されたプロパティは、各オブジェクトに対して固有です。

自分で試してみよう

<?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腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

オブジェクト指向プログラミングのすべてのレッスン