【PHP】アクセス修飾子って何?staticの使いどころについても解説します

PHP

PHPを学習しているけど、アクセス修飾子って何?

といった疑問に答えていきます。

スポンサーリンク

アクセス修飾子とは?

アクセス修飾子とは変数やメソッドにどこからアクセスできるかを指定するものです。

アクセス修飾子には基本的に3つあります。
それはpublic, private, protectedです。
それぞれの違いは以下になります。

publicどこからでもアクセス可能
privateクラス内のみからアクセス可能
protectedクラス内とそのクラスを継承した子クラスからアクセス可能

staticって何?

先ほど紹介した3つに加えて、staticという修飾子があります。

staticは簡単に言うとクラスのインスタンスを生成することなしに利用できるプロパティやメソッドのことです。

これらのアクセス修飾子の使い方ですが、プロパティやメソッドの前につけるだけです。
ちなみに最初の三種類のアクセス修飾子とstaticは組み合わせて使うことができます。

アクセス修飾子 static $プロパティ名;

アクセス修飾子 static function メソッド名(引数) {}

つまりstaticをつけることでプロパティとメソッドがクラスなのか、インスタンスなのかを区別することができます。

また、staticは静的と訳されることから、staticがついたプロパティやメソッドを静的プロパティ静的メソッドといいます。逆にstaticが無いものをインスタンスプロパティインスタンスメソッドといいます。

プロパティメソッド
staticあり静的プロパティ静的メソッド
staticなしインスタンスプロパティインスタンスメソッド

また、静的かインスタンスかによってアクセス方法が変わります。
例えば同一インスタンス内のプロパティをアクセスする時には以下のようにします。

$this->プロパティ

しかし、クラス内のstaticプロパティにアクセスする時には以下のようにします。

self::プロパティ

->や::についてあまり詳しくない方は以下の記事がおすすめです。

staticメソッドの使い所について

staticメソッドの一般的な使い方は、インスタンスの状態に依存しない処理をさせることです。これはユーティリティメソッドとも呼ばれ、決まりきったお約束の処理などに用いられます。

今回はPHPのアクセス修飾子とstaticメソッドについて解説しました。アクセス修飾子はクラスを利用するときにとても重要な内容です。もし、クラスについてあやふやだなーと思う方はぜひ以下の記事で勉強してみてください。最後まで見てくださってありがとうございました。

コメント

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