PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPクラスのプロパティとは?宣言方法とアクセス方法をわかりやすく解説

はじめに

クラスの中で宣言されたデータメンバーは「プロパティ」と呼ばれます。プロパティは「属性(アトリビュート)」や「フィールド」という名称で参照されることもあります。

PHPでは、プロパティは必ず publicprivateprotected のいずれかのアクセス修飾子キーワードを付けて宣言します。プロパティ名には、PHPで有効な任意のラベルを使用できます。また、プロパティの値はクラスの各インスタンスごとに異なる値を持つことができるため、「インスタンス変数」と呼ばれることもあります。

任意のインスタンスメソッドの中では、疑似変数 $this として利用できるオブジェクトのコンテキストを通じてプロパティへアクセスします。public として宣言されたプロパティは、アロー演算子 -> を使ってオブジェクトからアクセスできます。一方、static キーワードを付けて定義されたプロパティは、その値がクラスの全オブジェクト間で共有され、スコープ定義演算子 :: とクラス名を使ってアクセスします。

プロパティの宣言とアクセス

次の例は、プロパティの定義方法とアクセス方法を示したものです。

コード例

<?php
class myclass{
    private $fname = "Kiran";
    public $mname = "Pratap";
    static $lname = "Singh";

    function dispdata(){
        echo "$this->fname\n";
        echo "$this->mname\n";
        echo myclass::$lname;
    }
}
$obj = new myclass();
$obj->dispdata();
?>

出力結果

上記コードの出力は以下のとおりです。

Kiran
Pratap
Singh

クラスの外部からは、public として宣言されたインスタンスプロパティにはオブジェクト経由でアクセスできますが、private プロパティにはアクセスできません。

以前のバージョンのPHPでは、var キーワードによるプロパティ宣言が使われていました。現在では非推奨(deprecated)となっていますが、後方互換性のために引き続き利用可能であり、public 宣言として扱われます。

型付きプロパティ(PHP 7.4以降)

PHP 7.4からは、プロパティ変数に対する型宣言が導入されました。これにより、プロパティに格納できる値の型を明示的に指定できるようになり、より安全で読みやすいコードを書けるようになりました。

コード例

<?php
class myclass{
    private string $name;
    private int $age;

    function setdata(string $x, int $y){
        $this->name = $x;
        $this->age = $y;
    }

    function dispdata(){
        echo $this->name . "\n";
        echo $this->age . "\n";
    }
}
$obj = new myclass();
$obj->setdata("Kiran", 20);
$obj->dispdata();
?>

出力結果

Kiran
20

なお、PHP 8.1では一度値を代入すると変更できない readonly(読み取り専用)プロパティも導入されており、イミュータブルなデータを持つクラス設計に役立ちます。また、プロパティのデフォルト値として指定できるのは定数式のみである点にも注意してください。

  1. CSSのword-breakプロパティとは?使い方とサンプルコードを解説

    word-breakプロパティは、CSSでテキストの改行(行の折り返し)ルールを制御するためのプロパティです。特に、単語の途中で改行するかどうか、ハイフンや句読点でのみ改行するかどうかなどを指定できます。 word-breakプロパティの主な値 normal:通常の改行ルールに従います(初期値)。日本語や中国語などのCJK文字では任意の位置で改行できますが、欧文の単語途中では改行されません。 break-all:すべての文字の間で改行が可能になります。単語の途中でも強制的に折り返されるため、幅の狭いコンテナに長い英単語を収めたい場合に便利です。 keep-all:CJK言語(日本語・中国語・

  2. CSSフォントプロパティ徹底解説!font-familyやfont-sizeの使い方と実例

    CSSのフォントプロパティを使うことで、Webページ上のテキストの見た目を自由にカスタマイズできます。本記事では、テキストのスタイリングに役立つ主要なフォント関連プロパティを、実際のコード例とともにわかりやすく解説します。 CSSの主要なフォントプロパティ一覧 font-family 要素に適用するフォント(書体)を指定するためのプロパティです。複数のフォント名をカンマ区切りで列挙でき、先頭から順に利用可能なものが適用されます。 font-kerning 文字間隔を均一に整え、可読性を高めるために使用するプロパティです。ただし、この機能はフォント側がカーニング情報を持っている場合にのみ有効とな