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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<?php
/* ----------------------------------------------------------------------------------
* クラス・オブジェクト:-- ◆クラス・オブジェクトの基本構成◆ --の例
* 2015.10.11 作成 yoshi of CXMedia Inc.
* ----------------------------------------------------------------------------------
*/
header("Content-type:text/plain; charset=UTF-8");
/* -------------------
* クラスの基本構成
* ------------------- */
class Test{
// -----プロパティ(Property)---------------------------
/* クラス内で定義された変数
* publicは、アクセス修飾子で、どこからでもアクセス可能
* privateは、クラス内のみでアクセス可能
* ------------------------------------------------------ */
public $testProperty = "プロパティ";
private $testConst;
// ----------コンストラクタ(Constructor)------------------------------------
/* インスタンス化したときに自動的に呼び出され、変数を初期化する場合に利用。
* クラスの引数がnull(デフォルト)の時、引数上で、$str='なし'の様に設定
* "this"は、(クラスの)インスタンス化された自分自身を表す。
* アクセス修飾子の省略値は「public」と同様
* ------------------------------------------------------------------------- */
function __construct($str='なし'){
// 初期設定データから、プロパティをセット
$this->testConst = $str;
$this->testProperty .= $str;
echo "コンストラクタ:",$this->testConst,"\n";
}
// ------メソッド(Method)-------------------
public function testMethod(){
// コンストラクタで設定したプロパティを"this"演算子を利用して参照
echo "メソッド:",$this->testConst,"\n";
}
// ----デストラクタ(destructor)(省略可能)-----
function __destruct(){
echo "デストラクタ:",$this->testConst,"\n";
}
}
/* --------------
* クラスの利用
* -------------- */
// ---インスタンス(オブジェクト)を作成--- //
/* -------------------------------------------------------------------
* new キーワードでクラス Testをインスタンス化して、$obj1と$obj2は、
* 初期データ(引数)でコンストラクタ実行したものがセットされる
* ------------------------------------------------------------------- */
$obj1 = new Test('文字セット');
$obj2 = new Test();
// public(アクセス修飾子)のプロパティは、「インスタンスと"->"オブジェクト演算子付き変数名」を指定で利用
echo '◇プロパティ参照→',$obj1->testProperty,"\n";
echo '◇プロパティ参照→',$obj2->testProperty,"\n";
// 各オブジェクトのメソッド実行は、「インスタンスと"->"オブジェクト演算子付き関数名」を指定して、実行
$obj1->testMethod();
$obj2->testMethod();
// オブジェクト(インスタンス)破棄で、デストラクタの処理実行
unset($obj1);
unset($obj2);
?>