Ext JSやRapid Driveなど
システム開発の技術情報をご紹介。

お問い合わせ 資料請求 無料見積り

お電話でお気軽にお問い合わせくださいTel 03-6805-2904 営業時間 [平日]AM 9:30 - PM 6:30

クラス

クラスについて

クラス情報を参照する

クラス名を取得する

get_class()関数は、引数で指定したオブジェクト変数が参照しているクラスのクラス名を取得することができます。

クラス名を取得する
<?php

    class sansu {

        function kakezan( $number ) {

             return $this->result = $number * 100;
        }

        function ClassName() {

            echo "クラスの名前は", get_class( $this ), "です<br />n";
        }
    }

    $name = new sansu();

    echo "参照しているクラスの名前は", get_class( $name ), "です<br />n";

    $name->ClassName();
?>
実行結果
参照しているクラスの名前はsansuです
クラスの名前はsansuです
定義済みのクラス名を取得する

get_declared_classes()関数は、定義済みのクラス名を取得することできます。自分で定義したクラス以外にも、PHPの標準で定義してあるクラス名も取得することができます。

クラス名を取得する(1)
<?php
    class sansuKake {

        var $result;

        function kakezan( $number ) {

             return $this->result = $number * 100;
        }
    }

    class sansuTashi {

        var $result2;

        function tashizan( $number ) {

             return $this->result2 = $number + 100;
        }
    }

    class sansuHiki {

        var $result3;

        function hikizan( $number ) {

             return $this->result3 = $number - 100;
        }
    }

    class sansuWari {

        var $result4;

        function warizan( $number ) {

             return $this->result4 = $number / 100;
        }
    }

    $array = get_declared_classes();
    print_r( $array );
?>
実行結果(PHP4の定義済みクラス)
[0] => stdClass
[1] => __PHP_Incomplete_Class
[2] => Directory
(中略)
[] => sansuKake
[] => sansuTashi
[] => sansuHiki
[] => sansuWari
実行結果(PHP5の定義済みクラス)
[0] => stdClass
[1] => Exception
[2] => ErrorException
(中略)
[] => sansuKake
[] => sansuTashi
[] => sansuHiki
[] => sansuWari
親のクラス名を取得する

get_parent_class()関数は、継承元となる親クラス名を取得することができます。親クラスが存在しない場合にはNULLになります。

クラス名を取得する(2)
<?php
    class sansu {

        var $result;
        var $result2;

        function keisan1( $number ) {

             return $this->result = $number * 100;
             return $this->result2 = $number + 100;
        }
    }

    class sansu2 {

        var $result3;
        var $result4;

        function keisan2( $number ) {

             return $this->result3 = $number - 100;
             return $this->result4 = $number / 100;
        }
    }

    class child1 extends sansu {

        function child1() {

            echo "私の親クラスは", get_parent_class( $this ), "です<br />n";
        }
    }

    class child2 extends sansu2 {

        function child2() {

            echo "私の親クラスは", get_parent_class( 'child2' ), "です<br />n";
        }
    }

    $parentName1 = new child1();
    $parentName2 = new child2();
?>
実行結果(PHP5の定義済みクラス)
私の親クラスはsansuです
                                私の親クラスはsansu2です
クラスのメソッド名を取得する

get_class_methods()関数は、クラスで定義されているメソッドの名前を配列で取得することができます。

クラスのメソッド名を取得する
<?php
    class sansu {

        var $result;
        var $result2;
        var $result3;
        var $result4;

        function kakezan( $number ) {

             return $this->result = $number * 100;
        }

        function tashizan( $number ) {

             return $this->result2 = $number + 100;
        }

        function hikizan( $number ) {

             return $this->result3 = $number - 100;
        }

        function warizan( $number ) {

             return $this->result4 = $number / 100;
        }
    }

    $sansu_method = get_class_methods( sansu );

    foreach( $sansu_method as $method_name ) {

        echo "$method_name<br />n";
    }
?>
実行結果(PHP5の定義済みクラス)
kakezan
tashizan
hikizan
warizan
クラスが存在するか調べる

class_exists()関数は、引数に指定したクラスが定義されているかどうかを調べることができます。

クラスの存在を確認
<?php
    class sansu {

        var $result;

        function kakezan( $number ) {

             return $this->result = $number * 100;
        }
    }

    if( class_exists( sansu ) ) {

        echo "このクラスは存在します";

    } else {

        echo "このクラスは存在しません";
    }
?>
実行結果(PHP5の定義済みクラス)
このクラスは存在します
クラスのメソッドが存在するか調べる

method_exists()関数は、対象のクラスに、指定したメソッドが存在するかどうかを調べることができます。

クラスのメソッドを確認
 <?php
    class sansu {

        var $result;

        function kakezan( $number ) {

             return $this->result = $number * 100;
        }
    }

    if( method_exists( sansu, "kakezan" ) ) {

        echo "このメソッドは存在します";

    } else {

        echo "このメソッドは存在しません";
    }
?>
実行結果(PHP5の定義済みクラス)
このメソッドは存在します
クラスのプロパティ情報を取得する

get_class_vars()は、クラスで定義されているプロパティを配列で取得することができます。

プロパティ情報を取得
<?php
    class sansu {

        var $result1;
        var $result2;
        var $result3;
        var $result4;

        function kakezan( $number ) {

             return $this->result = $number * 100;
        }

        function tashizan( $number ) {

             return $this->result2 = $number + 100;
        }

        function hikizan( $number ) {

             return $this->result3 = $number - 100;
        }

        function warizan( $number ) {

             return $this->result4 = $number / 100;
        }
    }

    $sansu_var = get_class_vars( sansu );

    foreach( $sansu_var as $key => $value ) {

        echo "$key<br />n";
    }
?>
実行結果(PHP5の定義済みクラス)
result1
result2
result3
result4