検索
HOME
検索
サイトマップ
問い合わせ
ねこすけ
トップ > 備忘録 > PHP4のクラスとメンバ(オブジェクト指向)   

PHP4のクラスとメンバ(オブジェクト指向)

クラスとは


変数とそれに付随する固有の手続きをカプセル化したものをクラスといいます。
書き方はクラス命令で始まり、var命令でそのクラス内でアクセス可能な変数(メンバ変数)を定義します。
メンバ変数にはクラス外からはクラスの実態を通して間接的にアクセスします。

クラスの内部にはfunctionで定義できる関数も定義できます。メンバ関数と呼びます。
メンバ関数の中からメンバ変数にはglobal宣言なしでアクセスできます。
($this->メンバ変数名)

メンバ関数にアクセスする際は「$this->メンバ関数名」という書式でアクセスします

メンバの中でもクラスと同じ名前を持つ関数を「コンストラクタ」と呼びます。コンストラクタはクラスのオブジェクトをnewで生成する際自動的に呼ばれる関数です。

クラスの呼び出しは
・newでそのクラスのオブジェクトを定義
・オブジェクト名->メンバ関数名() で呼び出し

クラスには継承とう概念があり、クラスから派生した独自の手続きが追加されたクラスを宣言するやり方が可能です。


**ソース

Warning: highlight_file(/var/www/html/com.nekosuke.php/sample/sample_class_01.php): failed to open stream: No such file or directory in /var/www/com.nekosuke.php/000003.html on line 66

Warning: highlight_file(): Failed opening '/var/www/html/com.nekosuke.php/sample/sample_class_01.php' for highlighting in /var/www/com.nekosuke.php/000003.html on line 66



**結果
foo():現在のbarの値は10 です
add():現在のbarの値は11 です
add():現在のbarの値は12 です
change():現在のbarの値は5 です
change():現在のbarの値は0 です


継承


別のクラスを作り、あるクラスの拡張であることを宣言する。~
同一のメンバ関数を指定すると基底クラスのメンバ関数を上書きしする形で実行される。


ソース2



<?php

//classテスト2
class foo2 extends foo{
    function 
foo2(){
        
$this->foo(); 
        
//基礎クラスのコンストラクタ呼び出し
    
}
    function 
change($val=3){
        
$this->bar =$val 2;
        
$this->display("change()");
    }
}

$bas =new foo2;
$bas->add();
$bas->add();
$bas->change(5);
$bas->change();

class 
foo{
    var 
$bar;
    function 
foo(){
        
$this->bar=10;
        
$this->display("foo()");
    }

    function 
add(){
        ++
$this->bar;
        
$this->display("add()");
    }

    function 
change($val=0){
        
$this->bar=$val;
        
$this->display("change()");
    }

    function 
display($func){
        
printf("%s:現在のbarの値は%d です<br>\n",$func,$this->bar);
    }
}

?>



参照
PHP徹底攻略(SOFTBANK) 60ページ








  問い合わせ
ねこすけのsmarty著作権表示
ねこすけCMSへ
[EDIT]