繰返して使う文字列をクラス化し、連想配列から条件に一致するデータを取得

クラスとは定数や変数、関数をまとめて入れて置く箱のようなもので、必要な時に必要なものを取り出すことができます。多くの場合、関数でもなんとかなりますが、規模が大きくなるとクラスが必要になってきます。

PHP
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
31
32
<?php
// 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メソッドを呼び出しています。