2000-04-12 21:31:26 +00:00
|
|
|
<reference id="ref.classobj">
|
|
|
|
<title>Class/Object Functions</title>
|
|
|
|
<titleabbrev>Classes/Objects</titleabbrev>
|
|
|
|
|
2000-07-10 04:29:52 +00:00
|
|
|
<partintro>
|
|
|
|
<sect1 id="classobj.partintro">
|
|
|
|
<title>Introduction</title>
|
|
|
|
<sect2 id="classobj.intro">
|
2000-09-04 08:41:01 +00:00
|
|
|
<title>About</title>
|
|
|
|
<para>
|
|
|
|
These functions allow you to obtain information about classes
|
|
|
|
and instance objects. You can obtain the name of the class to
|
|
|
|
which a 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).
|
|
|
|
</para>
|
|
|
|
</sect2>
|
2000-10-14 13:26:28 +00:00
|
|
|
<sect2 id="classobj.example">
|
2000-09-04 08:41:01 +00:00
|
|
|
<title>An example of use</title>
|
|
|
|
<para>
|
|
|
|
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
|
|
|
|
<varname>Spinach</varname> adds a method to cook it and another to
|
|
|
|
find out if it is cooked.
|
|
|
|
</para>
|
|
|
|
<para>
|
|
|
|
<example>
|
|
|
|
<title>classes.inc</title>
|
|
|
|
<programlisting role="php">
|
2000-07-10 04:29:52 +00:00
|
|
|
<?php
|
|
|
|
|
|
|
|
// base class with member properties and methods
|
|
|
|
class Vegetable {
|
|
|
|
|
2000-09-04 08:41:01 +00:00
|
|
|
var $edible;
|
|
|
|
var $color;
|
2000-07-10 04:29:52 +00:00
|
|
|
|
2000-09-04 08:41:01 +00:00
|
|
|
function Vegetable( $edible, $color="green" ) {
|
|
|
|
$this->edible = $edible;
|
|
|
|
$this->color = $color;
|
|
|
|
}
|
2000-07-10 04:29:52 +00:00
|
|
|
|
2000-09-04 08:41:01 +00:00
|
|
|
function is_edible() {
|
|
|
|
return $this->edible;
|
|
|
|
}
|
2000-07-10 04:29:52 +00:00
|
|
|
|
2000-09-04 08:41:01 +00:00
|
|
|
function what_color() {
|
|
|
|
return $this->color;
|
|
|
|
}
|
|
|
|
|
2000-07-10 04:29:52 +00:00
|
|
|
} // end of class Vegetable
|
|
|
|
|
|
|
|
|
|
|
|
// extends the base class
|
|
|
|
class Spinach extends Vegetable {
|
|
|
|
|
2000-09-04 08:41:01 +00:00
|
|
|
var $cooked = false;
|
2000-07-10 04:29:52 +00:00
|
|
|
|
2000-09-04 08:41:01 +00:00
|
|
|
function Spinach() {
|
|
|
|
$this->Vegetable( true, "green" );
|
|
|
|
}
|
2000-07-10 04:29:52 +00:00
|
|
|
|
2000-09-04 08:41:01 +00:00
|
|
|
function cook_it() {
|
|
|
|
$this->cooked = true;
|
|
|
|
}
|
2000-07-10 04:29:52 +00:00
|
|
|
|
2000-09-04 08:41:01 +00:00
|
|
|
function is_cooked() {
|
|
|
|
return $this->cooked;
|
|
|
|
}
|
|
|
|
|
2000-07-10 04:29:52 +00:00
|
|
|
} // end of class Spinach
|
|
|
|
|
|
|
|
?>
|
2000-09-04 08:41:01 +00:00
|
|
|
</programlisting>
|
|
|
|
</example>
|
|
|
|
</para>
|
|
|
|
<para>
|
|
|
|
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.
|
|
|
|
</para>
|
|
|
|
<para>
|
|
|
|
<example>
|
|
|
|
<title>test_script.php</title>
|
|
|
|
<programlisting role="php">
|
2000-07-10 04:29:52 +00:00
|
|
|
<pre>
|
|
|
|
<?php
|
|
|
|
|
|
|
|
include "classes.inc";
|
|
|
|
|
|
|
|
// utility functions
|
|
|
|
|
|
|
|
function print_vars($obj) {
|
2000-09-04 08:41:01 +00:00
|
|
|
$arr = get_object_vars($obj);
|
|
|
|
while (list($prop, $val) = each($arr))
|
|
|
|
echo "\t$prop = $val\n";
|
2000-07-10 04:29:52 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
function print_methods($obj) {
|
2000-09-04 08:41:01 +00:00
|
|
|
$arr = get_class_methods(get_class($obj));
|
|
|
|
foreach ($arr as $method)
|
|
|
|
echo "\tfunction $method()\n";
|
2000-07-10 04:29:52 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
function class_parentage($obj, $class) {
|
2000-09-04 08:41:01 +00:00
|
|
|
global $$obj;
|
|
|
|
if (is_subclass_of($$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";
|
|
|
|
}
|
2000-07-10 04:29:52 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// 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>
|
2000-09-04 08:41:01 +00:00
|
|
|
</programlisting>
|
|
|
|
</example>
|
|
|
|
</para>
|
|
|
|
<para>
|
|
|
|
One important thing to note in the example above is that
|
|
|
|
the object <varname>$leafy</varname> is an instance of the class
|
|
|
|
<classname>Spinach</classname> which is a subclass of
|
|
|
|
<classname>Vegetable</classname>,
|
|
|
|
therefore the last part of the script above will output:
|
|
|
|
</para>
|
|
|
|
<para>
|
|
|
|
<informalexample>
|
|
|
|
<programlisting>
|
|
|
|
[...]
|
2000-07-10 04:29:52 +00:00
|
|
|
Parentage:
|
|
|
|
Object leafy does not belong to a subclass of Spinach
|
|
|
|
Object leafy belongs to class spinach a subclass of Vegetable
|
2000-09-04 08:41:01 +00:00
|
|
|
</programlisting>
|
|
|
|
</informalexample>
|
|
|
|
</para>
|
|
|
|
</sect2>
|
2000-07-10 04:29:52 +00:00
|
|
|
</sect1>
|
|
|
|
</partintro>
|
2001-03-07 23:15:13 +00:00
|
|
|
|
|
|
|
<refentry id="function.call-user-method-array">
|
|
|
|
<refnamediv>
|
|
|
|
<refname>call_user_method_array</refname>
|
|
|
|
<refpurpose>
|
|
|
|
Call a user method given with an array of parameters
|
|
|
|
</refpurpose>
|
|
|
|
</refnamediv>
|
|
|
|
<refsect1>
|
|
|
|
<title>Description</title>
|
|
|
|
<funcsynopsis>
|
|
|
|
<funcprototype>
|
|
|
|
<funcdef>mixed
|
|
|
|
<function>call_user_method_array</function>
|
|
|
|
</funcdef>
|
|
|
|
<paramdef>string
|
|
|
|
<parameter>method_name</parameter>
|
|
|
|
</paramdef>
|
|
|
|
<paramdef>object
|
|
|
|
<parameter>obj</parameter>
|
|
|
|
</paramdef>
|
|
|
|
<paramdef>array
|
|
|
|
<parameter><optional>paramarr</optional></parameter>
|
|
|
|
</paramdef>
|
|
|
|
</funcprototype>
|
|
|
|
</funcsynopsis>
|
|
|
|
<para>
|
|
|
|
Calls a the method referred by <parameter>method_name</parameter> from
|
|
|
|
the user defined <parameter>obj</parameter> object, using the paramaters
|
|
|
|
in <parameter>paramarr</parameter>.
|
|
|
|
</para>
|
|
|
|
<para>
|
|
|
|
See also:
|
|
|
|
<function>call_user_func_array</function>,
|
|
|
|
<function>call_user_func</function>,
|
|
|
|
<function>call_user_method</function>.
|
|
|
|
</para>
|
|
|
|
<note>
|
|
|
|
<para>
|
|
|
|
This function was added to the CVS code after release of PHP 4.0.4pl1
|
|
|
|
</para>
|
|
|
|
</note>
|
|
|
|
</refsect1>
|
|
|
|
</refentry>
|
|
|
|
|
2000-09-04 11:51:43 +00:00
|
|
|
<refentry id="function.call-user-method">
|
2000-07-10 04:29:52 +00:00
|
|
|
<refnamediv>
|
2000-09-04 11:51:43 +00:00
|
|
|
<refname>call_user_method</refname>
|
|
|
|
<refpurpose>
|
|
|
|
Call a user method on an specific object
|
|
|
|
</refpurpose>
|
2000-07-10 04:29:52 +00:00
|
|
|
</refnamediv>
|
|
|
|
<refsect1>
|
|
|
|
<title>Description</title>
|
|
|
|
<funcsynopsis>
|
|
|
|
<funcprototype>
|
2000-09-04 11:51:43 +00:00
|
|
|
<funcdef>mixed
|
|
|
|
<function>call_user_method</function>
|
|
|
|
</funcdef>
|
|
|
|
<paramdef>string
|
|
|
|
<parameter>method_name</parameter>
|
|
|
|
</paramdef>
|
|
|
|
<paramdef>object
|
|
|
|
<parameter>obj</parameter>
|
|
|
|
</paramdef>
|
|
|
|
<paramdef>mixed
|
|
|
|
<parameter><optional>parameter</optional></parameter>
|
|
|
|
</paramdef>
|
|
|
|
<paramdef>mixed
|
|
|
|
<parameter><optional>...</optional></parameter>
|
|
|
|
</paramdef>
|
2000-07-10 04:29:52 +00:00
|
|
|
</funcprototype>
|
|
|
|
</funcsynopsis>
|
|
|
|
<para>
|
2000-09-04 11:51:43 +00:00
|
|
|
Calls a the method referred by <parameter>method_name</parameter> from
|
|
|
|
the user defined <parameter>obj</parameter> object. An example of usage
|
|
|
|
is below, where we define a class, instantiate an object and use
|
|
|
|
<function>call_user_method</function> to call indirectly its
|
|
|
|
<varname>print_info</varname> method.
|
|
|
|
<informalexample>
|
|
|
|
<programlisting role="php">
|
|
|
|
<?php
|
|
|
|
class Country {
|
|
|
|
var $NAME;
|
|
|
|
var $TLD;
|
|
|
|
|
|
|
|
function Country($name, $tld) {
|
|
|
|
$this->NAME = $name;
|
|
|
|
$this->TLD = $tld;
|
|
|
|
}
|
|
|
|
|
|
|
|
function print_info($prestr="") {
|
|
|
|
echo $prestr."Country: ".$this->NAME."\n";
|
|
|
|
echo $prestr."Top Level Domain: ".$this->TLD."\n";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
$cntry = new Country("Peru","pe");
|
|
|
|
|
|
|
|
echo "* Calling the object method directly\n";
|
|
|
|
$cntry->print_info();
|
|
|
|
|
|
|
|
echo "\n* Calling the same method indirectly\n";
|
|
|
|
call_user_method ("print_info", $cntry, "\t");
|
|
|
|
?>
|
|
|
|
</programlisting>
|
|
|
|
</informalexample>
|
2000-07-10 04:29:52 +00:00
|
|
|
</para>
|
2000-09-04 08:41:01 +00:00
|
|
|
<simpara>
|
2001-03-09 15:33:03 +00:00
|
|
|
See also <function>call_user_func_array</function>,
|
2001-03-07 23:15:13 +00:00
|
|
|
<function>call_user_func</function>,
|
|
|
|
<function>call_user_method_array</function>.
|
2000-09-04 08:41:01 +00:00
|
|
|
</simpara>
|
2000-07-10 04:29:52 +00:00
|
|
|
</refsect1>
|
|
|
|
</refentry>
|
|
|
|
|
2000-09-04 11:51:43 +00:00
|
|
|
<refentry id="function.class-exists">
|
2000-07-10 04:29:52 +00:00
|
|
|
<refnamediv>
|
2000-09-04 11:51:43 +00:00
|
|
|
<refname>class_exists</refname>
|
|
|
|
<refpurpose>Checks if the class has been defined</refpurpose>
|
2000-07-10 04:29:52 +00:00
|
|
|
</refnamediv>
|
|
|
|
<refsect1>
|
|
|
|
<title>Description</title>
|
|
|
|
<funcsynopsis>
|
|
|
|
<funcprototype>
|
2000-09-04 11:51:43 +00:00
|
|
|
<funcdef>bool <function>class_exists</function></funcdef>
|
|
|
|
<paramdef>string <parameter>class_name</parameter></paramdef>
|
|
|
|
</funcprototype>
|
|
|
|
</funcsynopsis>
|
|
|
|
<para>
|
|
|
|
This function returns true if the class given by
|
|
|
|
<parameter>class_name</parameter> has been defined,
|
|
|
|
false otherwise.
|
|
|
|
</para>
|
|
|
|
</refsect1>
|
|
|
|
</refentry>
|
|
|
|
|
|
|
|
<refentry id="function.get-class">
|
|
|
|
<refnamediv>
|
|
|
|
<refname>get_class</refname>
|
|
|
|
<refpurpose>Returns the name of the class of an object</refpurpose>
|
|
|
|
</refnamediv>
|
|
|
|
<refsect1>
|
|
|
|
<title>Description</title>
|
|
|
|
<funcsynopsis>
|
|
|
|
<funcprototype>
|
|
|
|
<funcdef>string <function>get_class</function></funcdef>
|
2000-07-10 04:29:52 +00:00
|
|
|
<paramdef>object <parameter>obj</parameter></paramdef>
|
|
|
|
</funcprototype>
|
|
|
|
</funcsynopsis>
|
|
|
|
<para>
|
2000-09-04 11:51:43 +00:00
|
|
|
This function returns the name of the class of which the
|
|
|
|
object <parameter>obj</parameter> is an instance.
|
2000-07-10 04:29:52 +00:00
|
|
|
</para>
|
2001-03-27 16:07:03 +00:00
|
|
|
<note>
|
|
|
|
<para>
|
|
|
|
<function>get_class</function> returns the class name in
|
|
|
|
lowercase form.
|
|
|
|
</para>
|
|
|
|
</note>
|
2000-09-04 08:41:01 +00:00
|
|
|
<simpara>
|
2000-09-04 11:51:43 +00:00
|
|
|
See also <function>get_parent_class</function>,
|
2000-09-04 08:41:01 +00:00
|
|
|
<function>is_subclass_of</function>
|
|
|
|
</simpara>
|
2000-07-10 04:29:52 +00:00
|
|
|
</refsect1>
|
|
|
|
</refentry>
|
|
|
|
|
2000-04-12 21:43:28 +00:00
|
|
|
<refentry id="function.get-class-methods">
|
|
|
|
<refnamediv>
|
|
|
|
<refname>get_class_methods</refname>
|
|
|
|
<refpurpose>Returns an array of class methods' names</refpurpose>
|
|
|
|
</refnamediv>
|
|
|
|
<refsect1>
|
|
|
|
<title>Description</title>
|
|
|
|
<funcsynopsis>
|
2000-06-24 07:38:45 +00:00
|
|
|
<funcprototype>
|
|
|
|
<funcdef>array <function>get_class_methods</function></funcdef>
|
|
|
|
<paramdef>string <parameter>class_name</parameter></paramdef>
|
|
|
|
</funcprototype>
|
2000-04-12 21:43:28 +00:00
|
|
|
</funcsynopsis>
|
|
|
|
<para>
|
|
|
|
This function returns an array of method names defined for the
|
|
|
|
class specified by <parameter>class_name</parameter>.
|
|
|
|
</para>
|
2001-03-27 17:33:36 +00:00
|
|
|
<para>
|
|
|
|
<example>
|
|
|
|
<title><function>get_class_methods</function> example</title>
|
|
|
|
<programlisting role="php">
|
|
|
|
<?php
|
|
|
|
|
|
|
|
class myclass {
|
|
|
|
// constructor
|
|
|
|
function myclass() {
|
|
|
|
return(true);
|
|
|
|
}
|
|
|
|
|
|
|
|
// method 1
|
|
|
|
function myfunc1() {
|
|
|
|
return(true);
|
|
|
|
}
|
|
|
|
|
|
|
|
// method 2
|
|
|
|
function myfunc2() {
|
|
|
|
return(true);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
$my_class = new myclass();
|
|
|
|
|
|
|
|
$class_methods = get_class_methods(get_class($my_class));
|
|
|
|
|
|
|
|
foreach ($class_methods as $method_name) {
|
|
|
|
echo "$method_name\n";
|
|
|
|
}
|
|
|
|
|
|
|
|
?>
|
|
|
|
</programlisting>
|
|
|
|
</example>
|
|
|
|
</para>
|
|
|
|
<para>
|
|
|
|
Will produce:
|
|
|
|
<informalexample>
|
|
|
|
<programlisting>
|
|
|
|
myclass
|
|
|
|
myfunc1
|
|
|
|
myfunc2
|
|
|
|
</programlisting>
|
|
|
|
</informalexample>
|
|
|
|
</para>
|
2000-09-04 08:41:01 +00:00
|
|
|
<simpara>
|
|
|
|
See also <function>get_class_vars</function>,
|
|
|
|
<function>get_object_vars</function>
|
|
|
|
</simpara>
|
2000-04-12 21:43:28 +00:00
|
|
|
</refsect1>
|
|
|
|
</refentry>
|
|
|
|
|
2000-04-12 21:31:26 +00:00
|
|
|
<refentry id="function.get-class-vars">
|
|
|
|
<refnamediv>
|
|
|
|
<refname>get_class_vars</refname>
|
|
|
|
<refpurpose>
|
|
|
|
Returns an array of default properties of the class
|
|
|
|
</refpurpose>
|
|
|
|
</refnamediv>
|
|
|
|
<refsect1>
|
|
|
|
<title>Description</title>
|
|
|
|
<funcsynopsis>
|
2000-06-24 07:38:45 +00:00
|
|
|
<funcprototype>
|
|
|
|
<funcdef>array <function>get_class_vars</function></funcdef>
|
|
|
|
<paramdef>string <parameter>class_name</parameter></paramdef>
|
|
|
|
</funcprototype>
|
2000-04-12 21:31:26 +00:00
|
|
|
</funcsynopsis>
|
|
|
|
<para>
|
2001-03-27 17:33:36 +00:00
|
|
|
This function will return an associative array of default
|
|
|
|
properties of the class. The resulting array elements are in the
|
|
|
|
form of <parameter>varname => value</parameter>.
|
|
|
|
</para>
|
|
|
|
<note>
|
|
|
|
<para>
|
|
|
|
Uninitialized class variables will not be reported by
|
|
|
|
<function>get_class_vars</function>.
|
|
|
|
</para>
|
|
|
|
</note>
|
|
|
|
<para>
|
|
|
|
<example>
|
|
|
|
<title><function>get_class_vars</function> example</title>
|
|
|
|
<programlisting role="php">
|
|
|
|
<?php
|
|
|
|
|
|
|
|
class myclass {
|
|
|
|
|
|
|
|
var $var1; // this has no default value...
|
|
|
|
var $var2 = "xyz";
|
|
|
|
var $var3 = 100;
|
|
|
|
|
|
|
|
// constructor
|
|
|
|
function myclass() {
|
|
|
|
return(true);
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
$my_class = new myclass();
|
|
|
|
|
|
|
|
$class_vars = get_class_vars(get_class($my_class));
|
|
|
|
|
|
|
|
foreach ($class_vars as $name => $value) {
|
|
|
|
echo "$name : $value\n";
|
|
|
|
}
|
|
|
|
|
|
|
|
?>
|
|
|
|
</programlisting>
|
|
|
|
</example>
|
|
|
|
</para>
|
|
|
|
<para>
|
|
|
|
Will produce:
|
|
|
|
<informalexample>
|
|
|
|
<programlisting>
|
|
|
|
var2 : xyz
|
|
|
|
var3 : 100
|
|
|
|
</programlisting>
|
|
|
|
</informalexample>
|
2000-04-12 21:31:26 +00:00
|
|
|
</para>
|
2000-09-04 08:41:01 +00:00
|
|
|
<simpara>
|
|
|
|
See also <function>get_class_methods</function>,
|
|
|
|
<function>get_object_vars</function>
|
|
|
|
</simpara>
|
2000-04-12 21:31:26 +00:00
|
|
|
</refsect1>
|
|
|
|
</refentry>
|
|
|
|
|
2000-09-04 11:51:43 +00:00
|
|
|
<refentry id="function.get-declared-classes">
|
|
|
|
<refnamediv>
|
|
|
|
<refname>get_declared_classes</refname>
|
|
|
|
<refpurpose>Returns an array with the name of the defined classes</refpurpose>
|
|
|
|
</refnamediv>
|
|
|
|
<refsect1>
|
|
|
|
<title>Description</title>
|
|
|
|
<funcsynopsis>
|
|
|
|
<funcprototype>
|
|
|
|
<funcdef>array <function>get_declared_classes</function></funcdef>
|
|
|
|
<paramdef>void</paramdef>
|
|
|
|
</funcprototype>
|
|
|
|
</funcsynopsis>
|
|
|
|
<para>
|
|
|
|
This function returns an array of the names of the declared classes
|
|
|
|
in the current script.
|
|
|
|
</para>
|
|
|
|
<note>
|
|
|
|
<para>
|
|
|
|
In PHP 4.0.1pl2, three extra classes are returned at the beginning of
|
|
|
|
the array: <classname>stdClass</classname> (defined in
|
|
|
|
<filename>Zend/zend.c</filename>),
|
|
|
|
<classname>OverloadedTestClass</classname> (defined in
|
|
|
|
<filename>ext/standard/basic_functions.c</filename>)
|
|
|
|
and <classname>Directory</classname>
|
|
|
|
(defined in <filename>ext/standard/dir.c</filename>).
|
|
|
|
</para>
|
2001-03-27 17:33:36 +00:00
|
|
|
<para>
|
|
|
|
Also note that depending on what libraries you have compiled
|
|
|
|
into PHP, additional classes could be present.
|
|
|
|
</para>
|
2000-09-04 11:51:43 +00:00
|
|
|
</note>
|
|
|
|
</refsect1>
|
|
|
|
</refentry>
|
|
|
|
|
2000-04-12 21:31:26 +00:00
|
|
|
<refentry id="function.get-object-vars">
|
|
|
|
<refnamediv>
|
|
|
|
<refname>get_object_vars</refname>
|
2000-07-10 04:29:52 +00:00
|
|
|
<refpurpose>Returns an associative array of object properties</refpurpose>
|
2000-04-12 21:31:26 +00:00
|
|
|
</refnamediv>
|
|
|
|
<refsect1>
|
|
|
|
<title>Description</title>
|
|
|
|
<funcsynopsis>
|
2000-06-24 07:38:45 +00:00
|
|
|
<funcprototype>
|
2000-07-10 04:54:59 +00:00
|
|
|
<funcdef>array <function>get_object_vars</function></funcdef>
|
2000-06-24 07:38:45 +00:00
|
|
|
<paramdef>object <parameter>obj</parameter></paramdef>
|
|
|
|
</funcprototype>
|
2000-04-12 21:31:26 +00:00
|
|
|
</funcsynopsis>
|
|
|
|
<para>
|
2000-09-04 08:41:01 +00:00
|
|
|
This function returns an associative array of defined object properties
|
|
|
|
for the specified object <parameter>obj</parameter>. If variables
|
|
|
|
declared in the class of which the <parameter>obj</parameter> is an
|
|
|
|
instance, have not been assigned a value, those will not be returned
|
|
|
|
in the array.
|
|
|
|
<example>
|
|
|
|
<title>Use of <function>get_object_vars</function></title>
|
|
|
|
<programlisting role="php">
|
|
|
|
<?php
|
|
|
|
class Point2D {
|
|
|
|
var $x, $y;
|
|
|
|
var $label;
|
|
|
|
|
|
|
|
function Point2D($x, $y) {
|
|
|
|
$this->x = $x;
|
|
|
|
$this->y = $y;
|
|
|
|
}
|
|
|
|
|
|
|
|
function setLabel($label) {
|
|
|
|
$this->label = $label;
|
|
|
|
}
|
|
|
|
|
|
|
|
function getPoint() {
|
|
|
|
return array("x" => $this->x,
|
|
|
|
"y" => $this->y,
|
|
|
|
"label" => $this->label);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
$p1 = new Point2D(1.233, 3.445);
|
|
|
|
print_r(get_object_vars($p1));
|
|
|
|
// "$label" is declared but not defined
|
|
|
|
// Array
|
|
|
|
// (
|
|
|
|
// [x] => 1.233
|
|
|
|
// [y] => 3.445
|
|
|
|
// )
|
|
|
|
|
|
|
|
$p1->setLabel("point #1");
|
|
|
|
print_r(get_object_vars($p1));
|
|
|
|
// Array
|
|
|
|
// (
|
|
|
|
// [x] => 1.233
|
|
|
|
// [y] => 3.445
|
|
|
|
// [label] => point #1
|
|
|
|
// )
|
|
|
|
|
|
|
|
?>
|
|
|
|
</programlisting>
|
|
|
|
</example>
|
2000-04-12 21:31:26 +00:00
|
|
|
</para>
|
2000-09-04 08:41:01 +00:00
|
|
|
<simpara>
|
|
|
|
See also <function>get_class_methods</function>,
|
|
|
|
<function>get_class_vars</function>
|
|
|
|
</simpara>
|
2000-04-12 21:31:26 +00:00
|
|
|
</refsect1>
|
|
|
|
</refentry>
|
|
|
|
|
2000-09-04 11:51:43 +00:00
|
|
|
<refentry id="function.get-parent-class">
|
2000-07-10 04:29:52 +00:00
|
|
|
<refnamediv>
|
2000-09-04 11:51:43 +00:00
|
|
|
<refname>get_parent_class</refname>
|
|
|
|
<refpurpose>Returns the name of the parent class of an object</refpurpose>
|
2000-07-10 04:29:52 +00:00
|
|
|
</refnamediv>
|
|
|
|
<refsect1>
|
|
|
|
<title>Description</title>
|
|
|
|
<funcsynopsis>
|
|
|
|
<funcprototype>
|
2000-09-04 11:51:43 +00:00
|
|
|
<funcdef>string <function>get_parent_class</function></funcdef>
|
2000-07-10 04:29:52 +00:00
|
|
|
<paramdef>object <parameter>obj</parameter></paramdef>
|
|
|
|
</funcprototype>
|
|
|
|
</funcsynopsis>
|
|
|
|
<para>
|
2000-09-04 11:51:43 +00:00
|
|
|
This function returns the name of the parent class to
|
|
|
|
the class of which the object <parameter>obj</parameter>
|
|
|
|
is an instance.
|
2000-07-10 04:29:52 +00:00
|
|
|
</para>
|
2000-09-04 08:41:01 +00:00
|
|
|
<simpara>
|
|
|
|
See also <function>get_class</function>,
|
2000-09-04 11:51:43 +00:00
|
|
|
<function>is_subclass_of</function>
|
2000-09-04 08:41:01 +00:00
|
|
|
</simpara>
|
2000-07-10 04:29:52 +00:00
|
|
|
</refsect1>
|
|
|
|
</refentry>
|
|
|
|
|
2000-09-04 11:51:43 +00:00
|
|
|
<refentry id="function.is-subclass-of">
|
2000-07-10 04:29:52 +00:00
|
|
|
<refnamediv>
|
2000-09-04 11:51:43 +00:00
|
|
|
<refname>is_subclass_of</refname>
|
|
|
|
<refpurpose>
|
|
|
|
Determines if an object belongs to a subclass
|
|
|
|
of the specified class
|
|
|
|
</refpurpose>
|
2000-07-10 04:29:52 +00:00
|
|
|
</refnamediv>
|
|
|
|
<refsect1>
|
|
|
|
<title>Description</title>
|
|
|
|
<funcsynopsis>
|
|
|
|
<funcprototype>
|
2000-09-04 11:51:43 +00:00
|
|
|
<funcdef>bool <function>is_subclass_of</function></funcdef>
|
|
|
|
<paramdef>object <parameter>obj</parameter></paramdef>
|
|
|
|
<paramdef>string <parameter>superclass</parameter></paramdef>
|
2000-07-10 04:29:52 +00:00
|
|
|
</funcprototype>
|
|
|
|
</funcsynopsis>
|
|
|
|
<para>
|
2000-09-04 11:51:43 +00:00
|
|
|
This function returns true if the object <parameter>obj</parameter>,
|
|
|
|
belongs to a class which is a subclass of
|
|
|
|
<parameter>superclass</parameter>, false otherwise.
|
2000-07-10 04:29:52 +00:00
|
|
|
</para>
|
2000-09-04 11:51:43 +00:00
|
|
|
<simpara>
|
|
|
|
See also <function>get_class</function>,
|
|
|
|
<function>get_parent_class</function>
|
|
|
|
</simpara>
|
2000-07-10 04:29:52 +00:00
|
|
|
</refsect1>
|
|
|
|
</refentry>
|
2000-04-12 21:43:28 +00:00
|
|
|
<refentry id="function.method-exists">
|
2000-04-12 21:31:26 +00:00
|
|
|
<refnamediv>
|
2000-04-12 21:43:28 +00:00
|
|
|
<refname>method_exists</refname>
|
|
|
|
<refpurpose>Checks if the class method exists</refpurpose>
|
2000-04-12 21:31:26 +00:00
|
|
|
</refnamediv>
|
|
|
|
<refsect1>
|
|
|
|
<title>Description</title>
|
|
|
|
<funcsynopsis>
|
2000-06-24 07:38:45 +00:00
|
|
|
<funcprototype>
|
|
|
|
<funcdef>bool <function>method_exists</function></funcdef>
|
|
|
|
<paramdef>object <parameter>object</parameter></paramdef>
|
|
|
|
<paramdef>string <parameter>method_name</parameter></paramdef>
|
|
|
|
</funcprototype>
|
2000-04-12 21:31:26 +00:00
|
|
|
</funcsynopsis>
|
|
|
|
<para>
|
2000-04-12 21:43:28 +00:00
|
|
|
This function returns true if the method given by
|
|
|
|
<parameter>method_name</parameter> has been defined for the given
|
|
|
|
<parameter>object</parameter>, false otherwise.
|
2000-04-12 21:31:26 +00:00
|
|
|
</para>
|
|
|
|
</refsect1>
|
|
|
|
</refentry>
|
|
|
|
|
|
|
|
</reference>
|
|
|
|
|
|
|
|
<!-- Keep this comment at the end of the file
|
|
|
|
Local variables:
|
|
|
|
mode: sgml
|
|
|
|
sgml-omittag:t
|
|
|
|
sgml-shorttag:t
|
|
|
|
sgml-minimize-attributes:nil
|
|
|
|
sgml-always-quote-attributes:t
|
|
|
|
sgml-indent-step:1
|
|
|
|
sgml-indent-data:t
|
|
|
|
sgml-parent-document:nil
|
|
|
|
sgml-default-dtd-file:"../../manual.ced"
|
|
|
|
sgml-exposed-tags:nil
|
|
|
|
sgml-local-catalogs:nil
|
|
|
|
sgml-local-ecat-files:nil
|
|
|
|
End:
|
|
|
|
-->
|