侍ブログ編集部2017/6/222019/8/6PHPでクラスを使う方法が知りたいクラスの継承や抽象化の意味や使い方がいまいちわからないPHPのクラスを使いこなせるようになりたいPHPのクラスは通常のクラスとしての使い方以外に、クラスを継承したり、静的メンバの参照、クラス内で定数を使用する方法など、クラスを使用してさまざまな処理が可能です。できることが多すぎていまいちクラスの使い方を理解している方も多いのではないでしょうか?そこで、今回はクラスとは何か?というところから、実際のクラスの使い方、継承や抽象化などより応用的な使い方についても解説していきます。まとめPHPのクラスとはクラスとは簡単に説明すると、プログラムの処理をまとめたオブジェクトのことで、あらゆるプログラミング言語でクラスは使用されます。クラスの中では主に、プロパティ(変数や定数)やメソッド(関数)の定義を記述します。クラスを定義するには、classキーワードを指定し、その次にクラス名を指定します。}}クラス名には予約語以外のあらゆる名前を指定することができます。クラス名の後には波括弧{}のペアを指定して、そのなかにクラスの処理を記述していきます。PHPなどのオブジェクト指向のプログラミング言語では、クラスを使用するために、クラスのオブジェクトを生成する必要があります。クラス名();生成したオブジェクトからプロパティの値を参照したり、メソッドを呼出したりすることができます。基本的な使い方ここでは、クラスの使い方を見ていきましょう。以下にclassを使用した簡単なサンプルを記述します。Class.サンプルでは、クラスSampleClassを作成し、その中でプロパティを宣言して値を代入しています。SampleClass()」でインスタンスを生成しています。クラス内のプロパティを参照するには、作成したオブジェクト変数に矢印演算子(->)でクラスのプロパティを指定します。継承(extends)クラスのプロパティやメンバを、他のクラスで継承する場合はextendsを指定します。extendsを使用して、クラスを継承するためには、以下のように記述します。処理...}以下にextendsを指定してクラスを継承する方法を記述します。このサンプルでは親クラスであるParentClassと、子クラスであるChildClassクラスを定義しています。ChildClassではextendsを指定して、親クラスのParentClassクラスを継承しています。クラスの継承を指定すれば、子クラスのインスタンスから親クラスのメソッドにアクセスできます。抽象化(abstract)抽象クラスとは他のクラスを継承して使用するためのクラスです。クラスを抽象化すると、そのクラスは直接インスタンスを生成できなくなります。抽象クラスを使用するためにはabstractを指定する必要があります。抽象クラス名{}抽象クラスには抽象メソッドを定義することができます。抽象メソッドは直接処理を持たない名前だけ定義されたメソッドです。抽象メソッドを定義するには抽象クラスと同じくabstractを指定します。メソッド名();}以下に抽象クラスを使用したサンプルを紹介します。.'<br>';実行結果:SampleClass1Samurai_SampleClass1SampleClass2Engineer_SampleClass2サンプルプログラムでは通常のクラスのオブジェクトを生成し、オブジェクトから抽象クラスのメソッドを呼出しています。抽象クラスで定義している抽象メソッドは、継承先のクラスで必ず再定義(オーバーライド)する必要があります。コンストラクタ(__construct)コンストラクタとはクラスからインスタンスを生成するときに、最初に呼び出される関数のことを言います。コンストラクタは__construct()で定義し、newでインスタンスを生成すると必ず実行されます。}}コンストラクタはクラスのインスタンスを生成する度に実行されますので、変数などを初期化する処理でよく使われます。以下にコンストラクタを使用したサンプルを紹介します。Engineerサンプルプログラムではクラスのインスタンス生成と同時にコンストラクタ(__construct)が呼び出され、変数$textの初期化処理を行っています。そのあとに「$class->show()」でメソッドを呼び出し、変数を参照すると変数に値が設定されていることが分かります。静的メンバの使用(static)クラスのプロパティやメソッドなどのメンバを参照するには、new演算子を使用して、クラスのインスタンスを生成する必要があります。クラス内でstaticを指定すれば、そのクラスのメンバはインスタンスを生成しなくても、参照することが可能です。staticな変数を指定するには、以下のように記述します。//処理}以下にstaticな変数を定義して、クラス外からインスタンスを生成しないでアクセスするサンプルを紹介します。定数の使用(const)クラス内で定数を指定するには、constを使用します。constを指定した定数をクラス内部で定義するときにはconstの後に定数名と値を指定します。}以下にconstを使用して定数を指定する方法を紹介します。例外の指定(exception)プログラムの実行中に発生する例外を扱うには、try~catch文を指定します。例外は独自の例外クラスを使用することも可能です。使用するには、Exceptionクラスを拡張します。2019年5月29日プロパティを取得(get_class_vars)クラスのデフォルトのプロパティのを取得するにはget_class_vars関数を使用します。get_class_vars関数は以下のように記述します。)返り値:現在のスコープから参照できる変数やデフォルト値を連想配列で返します。配列要素は「変数名=>値」となります。エラーが発生した場合はFALSEを返します。サンプルプログラム以下にget_class_vars関数を使用して、クラスのプロパティを取得するサンプルを紹介します。1000)先述したようにget_class_vars関数は、実行時のスコープから参照できる範囲の値を取得します。そのため、コンストラクタでプロパティの値を変更してもget_class_varsでは参照できません。クラスが定義済みか確認する(class_exists)クラスが定義済みか確認したい場合はclass_exists関数を使用します。)引数:第一引数にはクラス名を指定します。クラス名は大文字と小文字を区別しません。第二引数にTRUEを指定すると、クラスのオートローディングを行います。オートローディングについては以下のサイトで詳しく解説しています。http://php.net/manual/ja/language.oop5.autoload.php返り値:指定したクラスが定義されている場合はTRUE、指定されていない場合はFALSEを返します。'SampleClass2は定義されていません';}実行結果:SampleClass1SampleClass2は定義されていませんPHPを継続的に学習するコツPHPの学習をしていて、わからないところが多く何回も調べながらやるのは正直、嫌になってしまいますよね。そこで、どのようにすれば継続的に学習を続けて行けるのかそのコツをご紹介します。目的を明確にするまずは、なぜPHPを学んでいるのか明確にしましょう。PHPを学んでWebサイトが作りたいWordPressの編集がしたいエンジニアとして転職したいフリーランスを目指したいなど、目的は色々あると思います。この目的を明確にすることがとても大事で、PHPを学ぶ学習意欲に繋がっていきます。目的がないまま学習をしていると、学習すること自体が目的になってしまい、ゴールのない果てしない道を進むことになります。その結果、挫折してしまう人が多いのが現状となっています。ならないためにも、PHPを学ぶ目的は言えるようにしましょう。言えない場合は、学ぶプログラミング言語自体間違っている可能性もあります。目的から学んでいる言語があっているか確認しましょう。学習プランを決める目的が明確になったら、次に学習プランを立てましょう。この学習プランを立てずに学習している人が多いのですが、学習プランがないと自分が今どのくらい進んでいて、後どのくらい学習をすればいいのか見えないので、学習をすること自体がきつく長続きしません。学習を継続的に続けるためには学習プランは必須とも言えます。いつまでに、どのレベルになっていて、最終的なゴールはいつ達成するのかはしっかり決めましょう。先生を見つける「何度もエラーになって、自分で調べては修正する」この繰り返しがPHPを学習していると起こります。調べてもよくわからないし、時間もかかってしまってプラン通りに学習が進まないというのは当然のように起こります。調べて直したけどうまく動かないしどうなってんのこのように思い、学習をすること自体に嫌気が指して挫折してしまう人も多いです。ならないためにも、「先生」を見つけることが大事になります。先生と言ってもそう簡単に探せそうにないですよね。最近ではSNSでもコミュニティーが増え、相談しやすい環境が増えてきています。いったコミュニティーや勉強会を利用して先生を見つけるのも一つの手です。学習サイトやアプリなど、無料で学習できる環境が整ってはいるものの自分に投資して学習をすることも大事です。本や有料学習サイトは、無料では学べない範囲の学習や機能が付いているので、効率的に学習をすることが可能です。投資のもう一つの方法がプログラミングスクールで学ぶことです。独学と違い、プログラミングスクールでは上で紹介した学習を継続するためのサポートが徹底されているので、最も効率の良い学び方と言えるでしょう。先生も自分で探す必要がないので、エラーなどで躓いて時間がかかる心配もありません。スクールに入るのは抵抗がありますよね。その場合は、弊社で行っている無料体験レッスンへ参加してみてください。この無料体験レッスンでは、なぜPHPを学ぶのかその目的をヒアリングして、本当にPHPを学ぶべきなのか、その学習プランはどのように立てるのかなどの提案をしています。目的をヒアリングすることで、あなたに最適な言語や学習プランが分かるので、最速でエンジニアを目指せるイメージがわきます。手軽にしかもオンラインでも受けられるので、ぜひ一度目的を明確にしてみましょう。無料体験レッスンに申し込むまとめここでは、PHPで使用するクラス(class)について以下の内容を解説しました。クラスとはクラスの基本的な使い方クラスの継承(extends)クラスの抽象化(abstract)クラスのコンストラクタ(__construct)クラスで静的メンバを使用する(static)クラス内で定数を使用する(const)例外を指定する(exception)クラスのプロパティを取得する(get_class_vars)クラスが定義済みか確認する(class_exists)クラスはプログラムを扱う上で、基本的な処理となりますので使い方はしっかりと覚えておきましょう。クラスを使用する方法を忘れてしまったら、この記事を思い出してくださいね。TweetPocket無料でSEからWebエンジニアへ転職しませんか?侍エンジニア塾では、完全未経験の方から現在SEだけどプログラミングはやっていないという経験者まで、幅広い方々の人生を好転させるプログラミング指導を行ってきました。SEの方とお話していくなかで、システムエンジニアという職業だけどコードが書けない事務作業が多くスキルがないため将来が不安スクールに通うと完全未経験者と同じスタートになるからレベルが合わないという、すでに知識があるSEならではのお悩みがあることに気づきました。弊社では、マンツーマンでレッスンを行いますので、現在お持ちの知識レベルからカリキュラムを作成いたします。こちらの転職コースは無料で受講を始められて転職成功でそのまま卒業できるというとてもお得なコースとなっています。知識のあるSEといっても転職は年齢が若いほど受かりやすいため、まずは無料体験レッスンで今の現状や理想の働き方について一緒に考えていきましょう。侍エンジニア塾は「人生を変えるプログラミング学習」をコンセンプトに、過去多くのフリーランスエンジニアを輩出したプログラミングスクールです。プログラミングに役立つ情報や有用な情報を発信していきます。