Kintarou'sBlog

プログラミング学習中。学習内容のアウトプットや読書で学んだことなど随時投稿!

【PHP】クラスプロパティ・クラスメソッド・オブジェクト定数の設定

こんにちは😊Kintarouです。

現在エンジニア転職を目指してTECH CAMPにてプログラミング学習中です👨‍🎓
夢はフリーランスエンジニアになって働く人が働きやすいシステムを作ること!
と、愛する妻と海外移住すること🗽

プログラミングや読んでいる本のことなど、ブログに書いていきます!
twitter : https://twitter.com/ryosuke_angry


今回参考にさせて頂いたサイト様🙇‍♂️ dotinstall.com


クラスのプロパティ、メソッドを設定する

クラスに対するプロパティを設定する場合はstaticを使います。
例として、Userクラスで生成されたインスタンス($users)の名簿を格納する$listsを作ってみます。
メソッドはクラス名::メソッド名で実行出来ます。

<?php

#クラスのプロパティにはstaticをつけます。
class User
{
  private $name;
  private static $lists = [];
  
  #staticのついたプロパティにはself::でアクセスします。

  public function __construct($name)
  {
    $this->name = $name;
    array_push(self::$lists, $this->name);
  }

  public function profile()
  {
    printf('%s' . PHP_EOL, $this->name
    );
  }

  public static function showLists()
  {
    print_r(self::$lists);
  }

}

$users = [];

$users[0] = new User('Kintarou');
$users[1] = new User('Kinjirou');

#staticのついたメソッドはクラス名::で実行します。

User::showLists();

#=>Array
#=>(
#=>    [0] => Kintarou
#=>    [1] => Kinjirou
#=>)

クラスにオブジェクト定数を設定する

クラスに変数ではなく、定数を設定する事もできます。
今回はUserクラスの使い方をHELPという定数で設定します。

<?php

#定数は慣習的に大文字で$はいりません。staticも不要です。
#定数は後で再代入される事がないのでpublicで大丈夫です。
class User
{
  private $name;
  public const HELP = "ユーザーを作成するクラスです。\n引数にはユーザー名を渡します。";

  public function profile()
  {
    printf('%s' . PHP_EOL, $this->name
    );
  }

}


#クラス名::定数名で呼び出せます。
echo User::HELP . PHP_EOL;

#=>ユーザーを作成するクラスです。
#=>引数にはユーザー名を渡します。

以上、どなたかの参考になれば幸いです😊