クラス/オブジェクト関数とは? わかりやすく解説

Weblio 辞書 > 固有名詞の種類 > 製品 > コンピュータ > プログラミング言語 > PHP > クラス/オブジェクト関数の意味・解説 

クラス/オブジェクト関数

導入

以下の関数により、クラスやインスタンスオブジェクトに関する情報を 得ることが可能となります。オブジェクトが属するクラスの名前、その メンバープロパティ、メソッドを取得可能です。 この関数を使用することにより、オブジェクトのクラスメンバーだけで なく親クラス(すなわちそのオブジェクトクラスの派生元)の情報を得る ことも可能です。

要件

外部ライブラリを必要としません。

インストール手順

PHP コアに含まれるため、 追加のインストール無しで使用できます。

実行時設定

設定ディレクティブは定義されていません。

リソース型

リソース型は定義されていません。

定義済み定数

定数は定義されていません。

この例では、まず基底クラスおよびそのクラスの派生クラスを定義しま す。基底クラスは食用か否か、色とかいった、一般的な野菜を記述しま す。サブクラスSpinachはその野菜の料理法と調理 済であるかどうかの情報を追加します。
例 346. classes.inc
<?php

// メンバープロパティとメソッドを有する基底クラス
class Vegetable {

   var $edible;
   var $color;

   function Vegetable($edible, $color="green")
   {
       $this->edible = $edible;
       $this->color = $color;
   }

   function is_edible()
   {
       return $this->edible;
   }

   function what_color()
   {
       return $this->color;
   }

} // クラスVegetableの終り

// 基底クラスを拡張する
class Spinach extends Vegetable {

   var $cooked = false;

   function Spinach()
   {
       $this->Vegetable(true, "green");
   }

   function cook_it()
   {
       $this->cooked = true;
   }

   function is_cooked()
   {
       return $this->cooked;
   }

} // クラスSpinachの終り

?>


続いて、これらのクラスから二つのオブジェクトのインスタンスを作成し、 親クラスを含む情報を出力します。 また、いくつかのユーティリティ関数を定義します。これらは主に変数 を格好良く表示するためのものです。
例 347. test_script.php
<pre>
<?php

include "classes.inc";

// ユーティリティ関数

function print_vars($obj)
{
   foreach (get_object_vars($obj) as $prop => $val) {
       echo "\t$prop = $val\n";
   }
}

function print_methods($obj)
{
   $arr = get_class_methods(get_class($obj));
   foreach ($arr as $method) {
       echo "\tfunction $method()\n";
   }
}

function class_parentage($obj, $class)
{
   if (is_subclass_of($GLOBALS[$obj], $class)) {
       echo "Object $obj belongs to class " . get_class($$obj);
       echo " a subclass of $class\n";
   } else {
       echo "Object $obj does not belong to a subclass of $class\n";
   }
}

// 二つのオブジェクトのインスタンスを作成

$veggie = new Vegetable(true, "blue");
$leafy = new Spinach();

// オブジェクトに関する情報を出力
echo "veggie: CLASS " . get_class($veggie) . "\n";
echo "leafy: CLASS " . get_class($leafy);
echo ", PARENT " . get_parent_class($leafy) . "\n";

// veggieのプロパティを表示
echo "\nveggie: プロパティ\n";
print_vars($veggie);

// そしてleafyのメソッドを表示
echo "\nleafy: メソッド\n";
print_methods($leafy);

echo "\nParentage:\n";
class_parentage("leafy", "Spinach");
class_parentage("leafy", "Vegetable");
?>
</pre>
注意すべき大事な点ですが、上記の例ではオブジェクト $leafyVegetableのサブクラスであるクラス Spinachのインスタンスであり、 このスクリプトの最後の部分は以下のような出力となります。

       [...]
Parentage:
Object leafy does not belong to a subclass of Spinach
Object leafy belongs to class spinach a subclass of Vegetable

       


目次

call_user_method_array — パラメータの配列を指定してユーザメソッドをコールする[古い関数]
call_user_method — 指定したオブジェクトのユーザーメソッドをコールする[古い関数]
class_exists — クラスが定義済か確認する
get_class_methods — クラスメソッドの名前を取得する
get_class_vars — クラスのデフォルトプロパティを取得する
get_class — オブジェクトのクラス名を返す
get_declared_classes — 定義済のクラスの名前を配列として返す
get_declared_interfaces — 宣言されている全てのインターフェースの配列を返す
get_object_vars — オブジェクトのプロパティを取得する
get_parent_class — オブジェクトの親クラスの名前を取得する
interface_exists — インターフェースが宣言されているかどうかを確認する
is_a — オブジェクトがこのクラスのものであるか、このクラスをその親クラスのひとつとしているかどうかを調べる
is_subclass_of — あるオブジェクトが指定したクラスのサブクラスに属するかどうかを調べる
method_exists — クラスメソッドが存在するかどうかを確認する
property_exists — オブジェクトもしくはクラスにプロパティが存在するかどうかを調べる




固有名詞の分類

このページでは「PHP関数リファレンス」からクラス/オブジェクト関数を検索した結果を表示しています。
Weblioに収録されているすべての辞書からクラス/オブジェクト関数を検索する場合は、下記のリンクをクリックしてください。
 全ての辞書からクラス/オブジェクト関数 を検索

英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

クラス/オブジェクト関数のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



クラス/オブジェクト関数のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
PHP Documentation GroupPHP Documentation Group
Copyright © 1997 - 2025 by the PHP Documentation Group.

©2025 GRAS Group, Inc.RSS