検索HomeHTML&CSSjQueryjavascriptPHPHomeHTML&CSSjQueryjavascriptPHPCategoryHTML&CSSjavascriptjQueryPHPCategoryHTML&CSSjavascriptjQueryPHPPHPPHP:コードの考察(クラス・インスタンス・メソッドなど含む)2019/10/13PHP:コードの考察(クラス・インスタンス・メソッド)今回のコードでやっていること!(※コードの詳細は1番下)PHPで、curryとpastaのメニューを作る。curryのメニューで、メニュー名「CURRY」をpastaのメニューで、メニュー名「PASTA」を表示する。?></p>まず、最初にMenuクラスを作る。クラスは、大枠(骨組みのイメージ)。クラスの中身は、クラスを作るための構成が書かれていて今回の場合は、MENUを作るための構成が書かれている。このMENUの構成(クラス)をもとに、curry版、pasta版を生成(複製)してくイメージ。この複製されたものがインスタンスと呼ばれるもので、その複製されたものに、それぞれ、名前を付けることで、curry版、pasta版を作っている感じになる。それが、以下のコード2行。クラス名()で作ることができ、それを変数名、今回の場合は、$curryと$pastaにそれぞれ代入することで、$curry版、$pasta版を作っている。(変数名の定義がクラスおよびクラス内で行われている処理や定義になってる。$name;で、$nameというプロパティを作っている。$name;として、メニュー名のプロパティを作っている。プロパティに設定する値」になる。15px;}にあたる部分。CSSの場合は、これで、クラス名の文字色を白にしたい、クラス名のフォントサイズを15pxにしたいとなっている。今回のPHPでは、$curryのnameを'CURRY'にしたい、$pastaのnameを'PASTA'にしたいという感じになっている。->が使われているように、インスタンス名のプロパティにアクセスしているとイメージすると特に分かりやすい。今回は$curryのnameプロパティと$pastaのnameプロパティにアクセスして、それぞれプロパティに設定したい値を入れているという感じ。これで、確かにプロパティの詳細が設定できるのだがそれぞれ、インスタン(複製)の度に手入力で設定していくと大変なので、インスタンス(複製)に合わせて、自動でプロパティを設定してくれるようにする。このコードの意味は、インスタンスが生成されたら、そのインスタンスのnameプロパティに$nameという値を設定してね。この$nameが何かというと生成されたインスタンスにある引数だよってこと。詳しくコードを見ていく。__construct(){}について。これは、インスタンスに関連する処理を行わせためのコードで関数を定義しているのと同じ。{}の外に関数名が、{}の内にその関数が行う処理が書かれている。この関数のことをPHPでは、メソッドと呼んでいて関数名がメソッド名にあたる。ある、特別なメソッド名を使用すると、そのメソッド名が持つ特有の処理を行うことができる。今回は「__cnstruct」というメソッドが使われている。この「__cnstruct」メソッドが特別なメソッドの1つでnewを用いてインスタンスを生成する際、このメソッドが自動的に呼ばれるようになる。「__construct」にある処理も自動で行ってくれるというわけ。これが、インスタンスが生成されたらの部分にあたる。$name;これは、さっき出てきたようにプロパティを設定する処理になる。今回は、「$this」という特殊な変数を用いている。この「$this」は、メソッド内でインスタンスのプロパティやメソッドにアクセスしたいときに使うもので、メソッドが呼ばれたときにメソッドを呼び出した、インスタンスに置き換えられる。$curryのインスタンス内で、呼び出されたら、$thisの部分が$curryに$pastaのインスタンス内で、呼び出されたら、$thisの部分が$pastaに置き換わる。$name;と$this部分が、呼び出したインスタンスの名前に置き換わる。今回の場合、「__construct()」の()内に設定することで、newインスタンス名()の引数に設定した値がプロパティの設定する値$nameとなる。これは、newを用いて生成されたインスタンスには引数を与えることができて、その引数が「__construct」のメッソドに渡される、さらに、その引数が、メソッドの処理内で、プロパティの値として設定されていることから成り立っている。'CURRY';}という$curryのnameプロパティの設定まで行ってくれている。コメントをキャンセルメールアドレスが公開されることはありません。名前メールアドレスサイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。Royal.上へ戻る。