繰返して使う文字列をクラス化し、連想配列から条件に一致するデータを取得
クラスとは定数や変数、関数をまとめて入れて置く箱のようなもので、必要な時に必要なものを取り出すことができます。多くの場合、関数でもなんとかなりますが、規模が大きくなるとクラスが必要になってきます。
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
| 7 |
| 8 |
| 9 |
| 10 |
| 11 |
| 12 |
| 13 |
| 14 |
| 15 |
| 16 |
| 17 |
| 18 |
| 19 |
| 20 |
| 21 |
| 22 |
| 23 |
| 24 |
| 25 |
| 26 |
| 27 |
| 28 |
| 29 |
| 30 |
| // Productというクラスを宣言。 |
| class Product{ |
| // プロパティー(メンバ変数、フィールド、属性とも言います。) |
| public $name; |
| public $price; |
| // コンストラクタメソッド(このメソッドを記述するとインスタンス化の際に、自動で呼び出されます。) |
| public function __construct($name,$price) { |
| $this->name = $name; |
| $this->price = $price; |
| } |
| // メソッド(関数のことです。) |
| public function sampleFunc() { |
| echo "{$this->name}は{$this->price}円です。"; |
| } |
| } |
| $hairetu = array( |
| "ミカン" => "200", |
| "レモン" => "250", |
| "スイカ" => "400", |
| "リンゴ" => "300", |
| ); |
| foreach($hairetu as $key => $val){ |
| if($val >= 400){ |
| $key = '一番高値の'.$key; |
| } |
| // インスタンス化(オブジェクトを作ります。) |
| $content = new Product($key, $val); |
| // メソッドの呼び出し |
| $content->sampleFunc(); |
| } |
実行結果:ミカンは200円です。レモンは250円です。一番高値のスイカは400円です。リンゴは300円です。
PHP
3行目のクラス名はアルファベットの大文字と小文字、アンダースコアなどが使えますが最初の一文字目に数字は使えません。また、関数名と同じくクラス名でも大文字小文字の区別はされません。
5と6、8、13では、publicを宣言し、これらはどこからでもアクセスできます。
8は、コンストラクタを使っており、オブジェクト生成によって自動的に呼び出されます。
9と10では、$thisを使ってクラス内部の変数を代入しています。
13はメソッド、つまり関数です。14は30のメソッド呼び出しによって、28行目の$keyと$valの値がコンストラクタの引数である$nameと$priceに渡され、その結果を表示しています。
17から22は連想配列です。23行目のforeachで回し、28行目でインスタンス化しています。
30でsampleFuncメソッドを呼び出しています。