【PHP】スコープ定義演算子(::)
※下記の内容に不備がありましたら、コメント頂けると幸いです。また、下記の内容をご使用頂ける場合は自己責任でお願いします。
【目次】
背景
Laravelで出てくる「::」がよく分からなかったので、記事にまとめてみます。
スコープ定義演算子(::)
スコープ定義演算子(::)とは?
トークンのひとつで、static、定数、およびにオーバーライドされたクラスのプロパティやメソッドにアクセスすることができます。
トークンとは?
トークン (プログラミング言語)とは、プログラミング言語のソースコードを構成する単語や記号の最小単位のことである。
スコープとは?
プログラミングにおけるスコープとは、あるコンピュータ・プログラムにおいて、変数や関数などの識別子(identifier)が参照できる範囲(有効範囲)をいう。ネットワーク(TCP/IP)においては、DHCPサーバがクライアントに割り当てるIPアドレスの範囲を指す。
使い方
<?php
class MyClass {
const CONST_VALUE = 'A constant value';
}
$classname = 'MyClass';
echo $classname::CONST_VALUE; //PHP 5.3.0 以降で対応
?>
普通はクラス内のプロパティを扱う時は一度インスタンス化をする必要がありますが、スコープ定義演算子をつけることでインスタンスかなしでクラスのメソッド内のプロパティにアクセスすることができます。
プロパティやメソッドの要素をクラス定義外から参照する際には、クラス名を使用してください。
変数を用いてクラスを参照することも可能です。
三つの特別なキーワード self と parentそして static が、クラス定義の内部からプロパティまたはメソッドにアクセスする際に使用されます。
参考
素晴らしい記事に感謝いたします。
https://www.php.net/manual/ja/language.oop5.paamayim-nekudotayim.php