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の標準で定義してあるクラス名も取得することができます。
<?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 );
?>
[0] => stdClass [1] => __PHP_Incomplete_Class [2] => Directory (中略) [] => sansuKake [] => sansuTashi [] => sansuHiki [] => sansuWari
[0] => stdClass [1] => Exception [2] => ErrorException (中略) [] => sansuKake [] => sansuTashi [] => sansuHiki [] => sansuWari
get_parent_class()関数は、継承元となる親クラス名を取得することができます。親クラスが存在しない場合にはNULLになります。
<?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();
?>
私の親クラスは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";
}
?>
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 "このクラスは存在しません";
}
?>
このクラスは存在します
method_exists()関数は、対象のクラスに、指定したメソッドが存在するかどうかを調べることができます。
<?php
class sansu {
var $result;
function kakezan( $number ) {
return $this->result = $number * 100;
}
}
if( method_exists( sansu, "kakezan" ) ) {
echo "このメソッドは存在します";
} else {
echo "このメソッドは存在しません";
}
?>
このメソッドは存在します
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";
}
?>
result1 result2 result3 result4