Learn or Die

生涯勉強。Macです。

「self::」と「$this」の違い

$this

$thisは⾃分⾃⾝のオブジェクトを指す。
クラス内のメンバ変数やメソッドにアクセスする際に使う。

<?php

class Sample()
{
  public $title = 'Sample';
  public function sample()
  {
    $test = $this->title;
  }
}

self::

self::は⾃クラスを指す。
クラス定数、static変数については、インスタンス化せずに使⽤する。
そのため$thisは使⽤せず、代わりにselfを使⽤する。(staticメソッドにアクセスできる)

<?php

class Sample()
{
  public static $title = 'Sample';
  public function sample()
  {
    echo self::$title;
  }
}

参考サイト

techacademy.jp