diff --git a/functions/classobj.xml b/functions/classobj.xml index f2eac1df66..5b8c731726 100644 --- a/functions/classobj.xml +++ b/functions/classobj.xml @@ -6,86 +6,86 @@ Introduction - About - - 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). - - - - An example of use - - 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. - - - - classes.inc - + About + + 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). + + + + An example of use + + 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. + + + + classes.inc + <?php // base class with member properties and methods class Vegetable { - var $edible; - var $color; + var $edible; + var $color; - function Vegetable( $edible, $color="green" ) { - $this->edible = $edible; - $this->color = $color; - } + function Vegetable( $edible, $color="green" ) { + $this->edible = $edible; + $this->color = $color; + } - function is_edible() { - return $this->edible; - } + function is_edible() { + return $this->edible; + } - function what_color() { - return $this->color; - } - + function what_color() { + return $this->color; + } + } // end of class Vegetable // extends the base class class Spinach extends Vegetable { - var $cooked = false; + var $cooked = false; - function Spinach() { - $this->Vegetable( true, "green" ); - } + function Spinach() { + $this->Vegetable( true, "green" ); + } - function cook_it() { - $this->cooked = true; - } + function cook_it() { + $this->cooked = true; + } - function is_cooked() { - return $this->cooked; - } - + 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. - - - - test_script.php - + + + + + 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. + + + + test_script.php + <pre> <?php @@ -94,25 +94,25 @@ 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"; + $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"; + $arr = get_class_methods(get_class($obj)); + foreach ($arr as $method) + echo "\tfunction $method()\n"; } function class_parentage($obj, $class) { - 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"; - } + 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"; + } } // instantiate 2 objects @@ -138,27 +138,27 @@ 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: - - - - - [...] + + + + + 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 - - - - + + + + @@ -176,13 +176,13 @@ Object leafy belongs to class spinach a subclass of Vegetable - This function returns the name of the class of which the - object obj is an instance. + This function returns the name of the class of which the + object obj is an instance. - - See also get_parent_class, - is_subclass_of - + + See also get_parent_class, + is_subclass_of + @@ -200,14 +200,14 @@ Object leafy belongs to class spinach a subclass of Vegetable - This function returns the name of the parent class to - the class of which the object obj - is an instance. + This function returns the name of the parent class to + the class of which the object obj + is an instance. - - See also get_class, - is_subclass_of - + + See also get_class, + is_subclass_of + @@ -228,10 +228,10 @@ Object leafy belongs to class spinach a subclass of Vegetable This function returns an array of method names defined for the class specified by class_name. - - See also get_class_vars, - get_object_vars - + + See also get_class_vars, + get_object_vars + @@ -254,10 +254,10 @@ Object leafy belongs to class spinach a subclass of Vegetable This function will return an array of default properties of the class. - - See also get_class_methods, - get_object_vars - + + See also get_class_methods, + get_object_vars + @@ -275,13 +275,61 @@ Object leafy belongs to class spinach a subclass of Vegetable - This function returns an associative array of object properties for the - specified object obj. + This function returns an associative array of defined object properties + for the specified object obj. If variables + declared in the class of which the obj is an + instance, have not been assigned a value, those will not be returned + in the array. + + Use of <function>get_object_vars</function> + +<?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 +// ) + +?> + + - - See also get_class_methods, - get_class_vars - + + See also get_class_methods, + get_class_vars + @@ -289,9 +337,9 @@ Object leafy belongs to class spinach a subclass of Vegetable is_subclass_of - Determines if an object belongs to a subclass - of the specified class - + Determines if an object belongs to a subclass + of the specified class + Description @@ -304,13 +352,13 @@ Object leafy belongs to class spinach a subclass of Vegetable This function returns true if the object obj, - belongs to a class which is a subclass of - superclass, false otherwise. + belongs to a class which is a subclass of + superclass, false otherwise. - - See also get_class, - get_parent_class - + + See also get_class, + get_parent_class + @@ -372,19 +420,19 @@ Object leafy belongs to class spinach a subclass of Vegetable This function returns an array of the names of the declared classes - in the current script. + in the current script. - - - In PHP 4.0.1pl2, three extra classes are returned at the beginning of - the array: stdClass (defined in - Zend/zend.c), - OverloadedTestClass (defined in - ext/standard/basic_functions.c) - and Directory - (defined in ext/standard/dir.c). - - + + + In PHP 4.0.1pl2, three extra classes are returned at the beginning of + the array: stdClass (defined in + Zend/zend.c), + OverloadedTestClass (defined in + ext/standard/basic_functions.c) + and Directory + (defined in ext/standard/dir.c). + + @@ -417,27 +465,27 @@ Object leafy belongs to class spinach a subclass of Vegetable - Calls a the method referred by method_name from - the user defined obj object. An example of usage - is below, where we define a class, instantiate an object and use - call_user_method to call indirectly its - print_info method. + Calls a the method referred by method_name from + the user defined obj object. An example of usage + is below, where we define a class, instantiate an object and use + call_user_method to call indirectly its + print_info method. <?php class Country { - var $NAME; - var $TLD; - - function Country($name, $tld) { - $this->NAME = $name; - $this->TLD = $tld; - } + 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"; - } + function print_info($prestr="") { + echo $prestr."Country: ".$this->NAME."\n"; + echo $prestr."Top Level Domain: ".$this->TLD."\n"; + } } $cntry = new Country("Peru","pe"); @@ -451,9 +499,9 @@ call_user_method ("print_info", $cntry, "\t"); - - See also call_user_func. - + + See also call_user_func. +