phpで$thisっていうと自分自身っていう理解だったけど、もう少し詳しく調べてメモってく。
引用多め。
$thisとは?
![](https://magazine-cf.techacademy.jp/wp-content/uploads/2020/05/10005618/146284011_s-800x533.jpg)
PHPの疑似変数thisとは、クラスのインスタンス自身のことを指すものです。
「インスタンス自身」というのがポイントですな。
インスタンスというのは、クラスを実体化して使えるようにすること。この辺は実際にプログラムしてみるとわかる。
$thisとself::の違い
![](https://magazine-cf.techacademy.jp/wp-content/uploads/2017/09/77052798_l-800x533.jpg)
先の引用と同じテックアカデミーのサイト内に「PHPの「self::」と「$this」の違い」の記事が合ったのでついでにメモ。
$this
自分自身のオブジェクトを指し、インスタンス化した際、クラス内のメンバ変数やメソッドにアクセスする際に使用します
self::
クラス定数、static変数については、インスタンス化せずに使用します。そのため、$thisは使用せず、代わりにselfを使用します。(staticメソッドにアクセスできます)
こっちはインスタンス化しない場合に利用するんですな。
static変数とは?
![](https://magazine-cf.techacademy.jp/wp-content/uploads/2018/07/98851528_m-800x534.jpg)
クラスには、メンバ(プロパティ)と呼ばれるクラスが持つ情報があります。
もし、static修飾子をつけずにメンバを定義すると、それは各インスタンス毎に管理する項目になります。
これはクラス間で共通して管理する項目になります。
複数のインスタンス間で共通で扱う変数ってことですな。
プロパティのこと、「メンバ」ともいうんですなー。
この引用先に書いているサンプルプログラムだと、static変数には「::」(コロンコロン)でアクセスしてますな。
↓↓
static変数にアクセスするにはスコープ定義(::)演算子を使う
![](https://it-afi.com/wp-content/uploads/cocoon-resources/blog-card-cache/fafa1a72f5d469406bfbc6bb12acc3d1.png)
アロー(->)演算子を使う場合
インスタンスプロパティとインスタントメソッドにアクセスするスコープ定義(::)演算子を使う場合
静的プロパティと静的メソッドにアクセスするのかです
static(静的)変数と定数の違い
static変数も定数も、複数のインスタンス間で共通して使える。
違いは、
![](https://it-afi.com/wp-content/uploads/cocoon-resources/blog-card-cache/c45cf3157e76980383411a2c92ffa139.gif)
プロパティは変数なので、値が変えられてしまいます。そこで値の書き換えができない定数を使います。
- 定数・・・・・値が変えられない
- static変数・・・値が変えられる
ということですな。
![](https://magazine-cf.techacademy.jp/wp-content/uploads/2017/09/77052798_l-800x533.jpg)
![](https://magazine-cf.techacademy.jp/wp-content/uploads/2017/09/77052798_l-800x533.jpg)
コメント