   #PHP Manual Function Reference com_set call_user_method_array

   PHP Manual
   Prev  Next
   ______________________________________________________________________

IX. Class/Object Functions

Introduction

   These functions allow you to obtain information about classes and
   instance objects. You can obtain the name of the class to which an
   object belongs, as well as its member properties and methods. Using
   these functions, you can find out not only the class membership of an
   object, but also its parentage (i.e. what class is the object class
   extending).

Requirements

   No external libraries are needed to build this extension.

Installation

   There is no installation needed to use these functions; they are part
   of the PHP core.

Runtime Configuration

   This extension has no configuration directives defined in php.ini.

Resource Types

   This extension has no resource types defined.

Predefined Constants

   This extension has no constants defined.

Examples

   In this example, we first define a base class and an extension of the
   class. The base class describes a general vegetable, whether it is
   edible or not and what is its color. The subclass Spinach adds a
   method to cook it and another to find out if it is cooked.

   Example 1. classes.inc
   <?php
   // base class with member properties and methods
   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;
       }

   } // end of class Vegetable
   // extends the base class
   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;
       }

   } // end of class Spinach
   ?>

   We then instantiate 2 objects from these classes and print out
   information about them, including their class parentage. We also
   define some utility functions, mainly to have a nice printout of the
   variables.

   Example 2. test_script.php
   <pre>
   <?php
   include "classes.inc";
   // utility functions
   function print_vars($obj) {
       $arr = get_object_vars($obj);
       while (list($prop, $val) = each($arr))
           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";
       }
   }
   // instantiate 2 objects
   $veggie = new Vegetable(true, "blue");
   $leafy = new Spinach();
   // print out information about objects
   echo "veggie: CLASS " . get_class($veggie) . "\n";
   echo "leafy: CLASS " . get_class($leafy);
   echo ", PARENT " . get_parent_class($leafy) . "\n";
   // show veggie properties
   echo "\nveggie: Properties\n";
   print_vars($veggie);
   // and leafy methods
   echo "\nleafy: Methods\n";
   print_methods($leafy);
   echo "\nParentage:\n";
   class_parentage("leafy", "Spinach");
   class_parentage("leafy", "Vegetable");
   ?>
   </pre>

   One important thing to note in the example above is that the object
   $leafy is an instance of the class Spinach which is a subclass of
   Vegetable, therefore the last part of the script above will output:
[...]
Parentage:
Object leafy does not belong to a subclass of Spinach
Object leafy belongs to class spinach a subclass of Vegetable

   Table of Contents
   call_user_method_array --  Call a user method given with an array of
          parameters [deprecated]

   call_user_method --  Call a user method on an specific object
          [deprecated]

   class_exists -- Checks if the class has been defined
   get_class_methods -- Returns an array of class methods' names
   get_class_vars --  Returns an array of default properties of the class

   get_class -- Returns the name of the class of an object
   get_declared_classes -- Returns an array with the name of the defined
          classes

   get_object_vars -- Returns an associative array of object properties
   get_parent_class -- Retrieves the parent class name for object or
          class

   is_a --  Returns TRUE if the object is of this class or has this class
          as one of its parents

   is_subclass_of --  Returns TRUE if the object has this class as one of
          its parents

   method_exists -- Checks if the class method exists
   ______________________________________________________________________

   Prev    Home                   Next
   com_set  Up  call_user_method_array
