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