php $this (ドルthis)とは

php-logo php

phpで$thisっていうと自分自身っていう理解だったけど、もう少し詳しく調べてメモってく。

引用多め。

 

$thisとは?

PHPの擬似変数thisについて現役エンジニアが解説【初心者向け】 | TechAcademyマガジン
初心者向けにPHPの擬似変数thisについて現役エンジニアが解説しています。PHPの疑似変数thisとは、クラスのインスタンス自身のことを指すものです。クラス内のプロパティやメソッドにアクセスする場合に利用します。PHPの擬似変数thisの書き方や使い方について解説します。

PHPの疑似変数thisとは、クラスのインスタンス自身のことを指すものです。

「インスタンス自身」というのがポイントですな。

 

インスタンスというのは、クラスを実体化して使えるようにすること。この辺は実際にプログラムしてみるとわかる。

 

$thisとself::の違い

PHPの「self::」と「$this」の違いを現役エンジニアが解説【初心者向け】 | TechAcademyマガジン
初心者向けにPHPの「self::」と「$this」の違いについて現役エンジニアが解説しています。self::は自分のクラスを表し、$thisは自分のインスタンスを表します。インスタンス変数や関数、クラス変数や関数など、self::と$thisの違いについて確認しましょう。

先の引用と同じテックアカデミーのサイト内に「PHPの「self::」と「$this」の違い」の記事が合ったのでついでにメモ。

 

$this

自分自身のオブジェクトを指し、インスタンス化した際、クラス内のメンバ変数やメソッドにアクセスする際に使用します

 

 

self::

 

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

こっちはインスタンス化しない場合に利用するんですな。

 

static変数とは?

概念を理解!PHPでstatic変数を使う方法【初心者向け】 | TechAcademyマガジン
初心者向けにPHPでstatic変数を使う方法について解説しています。static変数とインスタンス変数の違いを学びましょう。例を元に詳しく解説しているので、概念が理解しにくい人もイメージできるはずです。

クラスには、メンバ(プロパティ)と呼ばれるクラスが持つ情報があります。

もし、static修飾子をつけずにメンバを定義すると、それは各インスタンス毎に管理する項目になります。

 

これはクラス間で共通して管理する項目になります。

複数のインスタンス間で共通で扱う変数ってことですな。

 

プロパティのこと、「メンバ」ともいうんですなー。

 

この引用先に書いているサンプルプログラムだと、static変数には「::」(コロンコロン)でアクセスしてますな。

↓↓

 

static変数にアクセスするにはスコープ定義(::)演算子を使う

 

PHPにおける"->"と"::"の違い | ハックノート
PHPでオブジェクト指向プログラミングを行うときに見かける2つの演算子についてどのような違いがあるのか. ## アロー(->)演算子を使う場合 インスタンスプロパティとインスタントメソッドにアクセスする ## スコープ定義(::)演算子を使う場合 静的プロパティと静的メソッドにアクセスするのかです。 例を挙げておきます...

アロー(->)演算子を使う場合
インスタンスプロパティとインスタントメソッドにアクセスする

スコープ定義(::)演算子を使う場合
静的プロパティと静的メソッドにアクセスするのかです

 

 

static(静的)変数と定数の違い

static変数も定数も、複数のインスタンス間で共通して使える。

違いは、

PHPのstaticプロパティとstaticメソッド、定数
オープンソースのWeb開発向けスクリプト言語「PHP」の文法を一から学ぶための入門連載。今回はクラスの機能として、staticと定数を扱います。

プロパティは変数なので、値が変えられてしまいます。そこで値の書き換えができない定数を使います。

  • 定数・・・・・値が変えられない
  • static変数・・・値が変えられる

ということですな。

 

 

PHPの「self::」と「$this」の違いを現役エンジニアが解説【初心者向け】 | TechAcademyマガジン
初心者向けにPHPの「self::」と「$this」の違いについて現役エンジニアが解説しています。self::は自分のクラスを表し、$thisは自分のインスタンスを表します。インスタンス変数や関数、クラス変数や関数など、self::と$thisの違いについて確認しましょう。
PHPの「self::」と「$this」の違いを現役エンジニアが解説【初心者向け】 | TechAcademyマガジン
初心者向けにPHPの「self::」と「$this」の違いについて現役エンジニアが解説しています。self::は自分のクラスを表し、$thisは自分のインスタンスを表します。インスタンス変数や関数、クラス変数や関数など、self::と$thisの違いについて確認しましょう。

 

 

 

 

 

 

 

 

コメント

タイトルとURLをコピーしました