Return to array_map_object3.phpt CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / ext / standard / tests / array |
1.1 misho 1: --TEST-- 2: Test array_map() function : object functionality - class methods as callback function 3: --FILE-- 4: <?php 5: /* Prototype : array array_map ( callback $callback , array $arr1 [, array $... ] ) 6: * Description: Applies the callback to the elements of the given arrays 7: * Source code: ext/standard/array.c 8: */ 9: 10: /* 11: * Testing array_map() for object functionality with following callback function variations: 12: * 1) child class method using parent object 13: * 2) parent class method using child object 14: * 3) child class method using parent class 15: * 4) parent class method using child class 16: */ 17: echo "*** Testing array_map() : class methods as callback function ***\n"; 18: 19: $arr1 = array(1, 5, 7); 20: 21: class ParentClass 22: { 23: public $var1 = 10; 24: public static function staticParent1($n) { 25: return $n; 26: } 27: private static function staticParent2($n) { 28: return $n; 29: } 30: } 31: 32: class ChildClass extends ParentClass 33: { 34: var $parent_obj; 35: public function __construct ( ) { 36: $this->parent_obj = new ParentClass(); 37: } 38: public $var2 = 5; 39: public static function staticChild($n) { 40: return $n; 41: } 42: public function nonstaticChild($n) { 43: return $n; 44: } 45: } 46: 47: $childobj = new ChildClass(); 48: $parentobj = new ParentClass(); 49: 50: echo "-- accessing parent method from child class --\n"; 51: var_dump( array_map(array('ChildClass', 'staticParent1'), $arr1) ); 52: 53: echo "-- accessing child method from parent class --\n"; 54: var_dump( array_map(array('ParentClass', 'staticChild'), $arr1) ); 55: 56: echo "-- accessing parent method using child class object --\n"; 57: var_dump( array_map(array($childobj, 'staticParent1'), $arr1) ); 58: 59: echo "-- accessing child method using parent class object --\n"; 60: var_dump( array_map(array($parentobj, 'staticChild'), $arr1) ); 61: 62: echo "Done"; 63: ?> 64: --EXPECTF-- 65: *** Testing array_map() : class methods as callback function *** 66: -- accessing parent method from child class -- 67: array(3) { 68: [0]=> 69: int(1) 70: [1]=> 71: int(5) 72: [2]=> 73: int(7) 74: } 75: -- accessing child method from parent class -- 76: 77: Warning: array_map() expects parameter 1 to be a valid callback, class 'ParentClass' does not have a method 'staticChild' in %s on line %d 78: NULL 79: -- accessing parent method using child class object -- 80: array(3) { 81: [0]=> 82: int(1) 83: [1]=> 84: int(5) 85: [2]=> 86: int(7) 87: } 88: -- accessing child method using parent class object -- 89: 90: Warning: array_map() expects parameter 1 to be a valid callback, class 'ParentClass' does not have a method 'staticChild' in %s on line %d 91: NULL 92: Done