Menu
Coddy logo textTech

$thisキーワード

CoddyのPHPジャーニー「オブジェクト指向プログラミング」セクションの一部。レッスン 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キーワードは、methodを呼び出したオブジェクトを参照するために、method内で使用されます。

car オブジェクトを作成し、プロパティを設定します:

$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 を参照するように設定します。これにより、method はどのオブジェクトのプロパティに access すべきかを認識できます。

別の車のオブジェクトがある場合:

$otherCar = new Car();
$otherCar->color = "Blue";
$otherCar->model = "SUV";
$otherCar->describe(); // 私は青いSUVです

重要なポイント:$this は常に、メソッドを呼び出した特定のオブジェクトを指します。メソッドが実行されると、各オブジェクトは独自のコンテキストを持ちます。

challenge icon

チャレンジ

簡単

Car クラスに、$this キーワードを使用して車の年式、メーカー、モデルを次の形式で出力する displayInfo というメソッドを追加し、car.php を完成させてください。

"This car is a [year] [make] [model]"

  • car.phpdisplayInfo メソッドを追加する Car クラスの定義を含むファイル
  • driver.phpCar クラスをインポートして使用するメイン実行ファイル(ロック済み)

自分で試してみよう

<?php
require_once 'car.php';

$myCar = new Car();
$myCar->year = 2020;
$myCar->make = "Toyota";
$myCar->model = "Corolla";

$myCar->displayInfo();
quiz icon腕試し

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

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

自分で練習してみよう: PHPオンラインコンパイラ