クラスの中で用意できるモノは、関数と変数です。
クラスに入っている関数や変数は、クラス化されていない関数や変数と区別するため、特別な名称がつけられています。入門書によって呼称が違うので要注意です。
クラスに入ってる関数:メンバー関数 メソッド
クラスに入ってる変数:メンバー変数 メンバー プロパティ
と呼ばれています。
クラスに入っている関数…メソッドは先日から勉強しているような書き方でOKです。
(まぁ、練習プログラムみてもらえればわかりますが。。。)
通常クラス内からしか呼び出しできません。
ではでは、クラスの作り方ですが、まずは練習プログラムの本体部分をご覧ください。
![](https://blogimg.goo.ne.jp/user_image/67/1c/3d5dc48d072da981a41bebd0599ee4e4.jpg)
48行目に $man = new aisatsu("島田英輔"); てあるじゃないですか。
こいつでクラスを作っています。
すでにクラスはプログラム上部に書いてあるじゃないか、作るって何だ?と思っている方がいらっしゃることでしょう。(すくなくとも僕はそうでしたw)
クラスってのはプログラムに書いただけじゃ、使えるようにならないのです。
実は、 $man = new aisatsu("島田英輔");でやっているように、new クラス名 といった形で宣言しないと、クラスを利用できないのです。
利用できる形になったクラスのことをオブジェクトといいます。んでnewしてオブジェクトを作ることをインスタンス化といいます。
事実、 $man = aisatsu("島田英輔");とnewを削ってプログラムをテストするとエラーが表示されます。
newをすることで、クラスをインスタンス化してオブジェクトを作るわけですが、例を使って説明しますと次のような形になるのではないかと思います。(てかほんの受け売りだからその通りなんだろうけどね)
クラス 設計図。インスタンス化されたオブジェクトにどんなメソッドとメンバーが用意しているか定義しているだけのモノ。
インスタンス化 設計図から実際に動くようにする。工場のようなイメージ。実際は、サーバーのメモリ空間にクラスの場所を確保する行為。
オブジェクト プログラム。アクセスすれば動く。
んで、 $man = new aisatsu("島田英輔"); に戻ります。
インスタンス化するときに島田英輔という引数をつけています。
というのも、クラスには外部から引数が1つ受け入れることが出来るように設計しているからです。
![](https://blogimg.goo.ne.jp/user_image/5f/6c/be1f6354617b94f6ce2a7e4fa598a16a.jpg)
4行目から8行目の部分ですね。
function __construct($s){
$this->name = $s;
echo $this->name."さん、クラスを作りました。
値を初期化しました。
";
}
とあるところです。
メソッド__constructに引数一つ受け取れるようになっていますよね。
ここにクラスを作ったときに渡された引数が入ります。
メソッド__constructは、ちょっと変わった関数でして、インスタンス化したときに自動的に実行される関数です。
通常は、ここで値を初期化するなどなどをするようです。今回は引数をメンバーnameにわたしました。
クラスに入っている関数や変数は、クラス化されていない関数や変数と区別するため、特別な名称がつけられています。入門書によって呼称が違うので要注意です。
クラスに入ってる関数:メンバー関数 メソッド
クラスに入ってる変数:メンバー変数 メンバー プロパティ
と呼ばれています。
クラスに入っている関数…メソッドは先日から勉強しているような書き方でOKです。
(まぁ、練習プログラムみてもらえればわかりますが。。。)
通常クラス内からしか呼び出しできません。
ではでは、クラスの作り方ですが、まずは練習プログラムの本体部分をご覧ください。
![](https://blogimg.goo.ne.jp/user_image/67/1c/3d5dc48d072da981a41bebd0599ee4e4.jpg)
48行目に $man = new aisatsu("島田英輔"); てあるじゃないですか。
こいつでクラスを作っています。
すでにクラスはプログラム上部に書いてあるじゃないか、作るって何だ?と思っている方がいらっしゃることでしょう。(すくなくとも僕はそうでしたw)
クラスってのはプログラムに書いただけじゃ、使えるようにならないのです。
実は、 $man = new aisatsu("島田英輔");でやっているように、new クラス名 といった形で宣言しないと、クラスを利用できないのです。
利用できる形になったクラスのことをオブジェクトといいます。んでnewしてオブジェクトを作ることをインスタンス化といいます。
事実、 $man = aisatsu("島田英輔");とnewを削ってプログラムをテストするとエラーが表示されます。
newをすることで、クラスをインスタンス化してオブジェクトを作るわけですが、例を使って説明しますと次のような形になるのではないかと思います。(てかほんの受け売りだからその通りなんだろうけどね)
クラス 設計図。インスタンス化されたオブジェクトにどんなメソッドとメンバーが用意しているか定義しているだけのモノ。
インスタンス化 設計図から実際に動くようにする。工場のようなイメージ。実際は、サーバーのメモリ空間にクラスの場所を確保する行為。
オブジェクト プログラム。アクセスすれば動く。
んで、 $man = new aisatsu("島田英輔"); に戻ります。
インスタンス化するときに島田英輔という引数をつけています。
というのも、クラスには外部から引数が1つ受け入れることが出来るように設計しているからです。
![](https://blogimg.goo.ne.jp/user_image/5f/6c/be1f6354617b94f6ce2a7e4fa598a16a.jpg)
4行目から8行目の部分ですね。
function __construct($s){
$this->name = $s;
echo $this->name."さん、クラスを作りました。
値を初期化しました。
";
}
とあるところです。
メソッド__constructに引数一つ受け取れるようになっていますよね。
ここにクラスを作ったときに渡された引数が入ります。
メソッド__constructは、ちょっと変わった関数でして、インスタンス化したときに自動的に実行される関数です。
通常は、ここで値を初期化するなどなどをするようです。今回は引数をメンバーnameにわたしました。