8章クラスとオブジェクト

PHPの初期のバージョンでは、クラス定義やオブジェクト指向がサポートされていませんでした。オブジェクトインターフェイスへの最初の本格的な試みはPHP 4からです†1。しかし、開発者が今日のような複雑なオブジェクトインターフェイスを使えるようになったのは、PHP 5からです。

[†1] PHP 3は基本的なオブジェクト機能をいくつか備えていましたが、PHP 4.0のリリースまでは、PHPが実際にオブジェクト指向だと考える開発者はほとんどいませんでした。

クラスは、classキーワードにより定義されます。クラス名の後に、そのクラスが継承する定数、プロパティ、メソッドに関する詳細な定義が続きます。例8-1では、PHPの基本的なクラスの構造を紹介します。このFooクラスはスコープ付き定数値、プロパティ、呼び出し可能なメソッドを提供します。

例8-1 プロパティとメソッドのある基本的なPHPクラス

class Foo
{
    const SOME_CONSTANT = 42;

    public string $hello = 'hello';

    public function __construct(public string $world = 'world') {}

    public function greet(): void
    {
        echo sprintf('%s %s', $this->hello, $this->world);
    }
}

オブジェクトは、newキーワードとクラス名でインスタンス化できます。このインスタンス化は、関数呼び出しのようにも見えます。このインスタンス化の際に渡される任意の引数は、透過的にクラスのコンストラクタ(__construct()メソッド)に渡され、オブジェクトの初期状態を定義します。 ...

Get PHPクックブック ―モダンPHPによるWebアプリケーション実用レシピ集 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.