PHP / Basic / クラス

PHP / Basic / クラス

インスタンス化

つまり new、 Java な感じ

$hoge = new Hoge();

メンバ変数(プロパティ)

アクセス修飾をつける

class Hoge{
    public $piyo = "ぴよ";
}

public を外部から使う $ が付かないのがポイント

$hoge = new Hoge();
echo $hoge->piyo;

内部で使う。this から引っ張る。

class Hoge{
    public $piyo = "ぴよ";
    public function dododo(){
        echo $this->piyo;
    }
}

定数

作るとき

class Hoge{
    const PIYO = "ぴよ";
}

ドルいらないのがポイント

アクセスするとき

echo hoge::PIYO;

PHPのconstとは再代入できないという意味ではなくて、宣言は変数代入ではなく完全なコードの字面に対するラベル付けのように動作する。

PHP 5.6 以降なら配列等も取れるようになっている。 なのでconstに取れるのはコードのリテラル表記で表現できるプリミティブな値のみで参照値はとれない。 つまり文字列と数値しかとることができない。オブジェクトだけでなく、配列や連想配列も不可。連想配列が使えないのはかなり不便だ。

自身の定数にアクセスする場合は self キーワードでアクセスする

$piyo = self::PIYO;

メソッド

class Hoge{
    public function fuga($a){
    }
}

静的メンバ

定数とは似ているが、共通して再代入できる何かを作りたい時に何か。 現実問題として実用的なプログラミングで使うかと言うとあまり機会が無い。

フレームワークとかで柔軟かつトリッキーな動きが必要になる場合に使う可能性はある。

作る

class Hoge{
    public static $piyo;
}

単に使う

$p = Hoge::$piyo;

自分自身の静的メンバを使う

クラス自身をPHPではselfキーワードで使う。

class Hoge{
    public static $piyo;
    public function fuga(){
        echo self::$piyo;
    }
}

静的メソッド(クラスメソッド)

作る

class Hoge{
    public static function piyo(){
    }
}

単に使う

Hoge::piyo();

自分自身の静的メソッドを使う

クラス自身をPHPではselfキーワードで使う。

class Hoge{
    public static function piyo(){
    }
    public function fuga(){
        self::piyo();
    }
}

タグ

php/basic/class/start.txt · 最終更新: 2020-11-03 10:12 by ore