1. ホーム 
  2. 備忘録 
  3. PHP

クラス

クラスの書き方

/**
 * 犬用のクラス
 */
class Dog
{
  //==============================================//
  /** @var string 名前 */
  private $name = 'Will';
  //==============================================//

  //==============================================//
  /**
   * 挨拶をする
   *
   * @return void
   */
  public function greet()
  {
    echo "こんにちワン、私は犬の{$this->name}だワン";
  }
  //==============================================//
}

// 犬のインスタンスを作成して挨拶をする
$dog = new Dog();
$dog->greet(); //!< 出力:こんにちワン、私は犬のWillだワン

クラス名はパスカルケース(アッパーキャメルケース)で記述する

変数や関数には public, private, protected のアクセス修飾子をつける

アクセス修飾子が省略されている場合は public になるので注意

言語によって省略されたときのデフォルトが違うので基本省略せず書くようにしといたほうが良い


コンストラクタ

PHPではクラスのコンストラクタは以下のように記述する

(前略)

  //==============================================//
  /**
  * コンストラクタ
  *
  * @param string $name 動物の名前
  */
  public function __construct( $name )
  {
    $this->name = $name;
  }
  //==============================================//

(後略)

このように関数名の最初が __ から始まるメソッドのことをマジックメソッドという

コンストラクタに引数を設定することで、new でインスタンスを作る際に変数を渡すことができる


$thisについて

既に何度か $this がコード上に出てきているが、この $this はインスタンス化された際の自身のオブジェクトを指している

クラス内で自身のメソッドや変数にアクセスする際は基本的に $this を通してアクセスする必要がある

例外として static や const の修飾子がついたものなどがあるが、それぞれ別ページにて説明するので割愛