123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287 |
- --TEST--
- Test array_unshift() function : passing object for 'var' argument
- --FILE--
- <?php
- /* Prototype : int array_unshift(array $array, mixed $var [, mixed ...])
- * Description: Pushes elements onto the beginning of the array
- * Source code: ext/standard/array.c
- */
- /*
- * Testing the functionality of array_unshift() by passing
- * an object to the $var argument
- */
- echo "*** Testing array_unshift() : Passing object to \$var argument ***\n";
- // simple class with a variable and method
- class SimpleClass
- {
- public $var1 = 1;
- public function fun1() {
- return $var1;
- }
- }
- // class without members
- class EmptyClass
- {
- }
- // abstract class
- abstract class AbstractClass
- {
- protected $var2 = 5;
- abstract function emptyFunction();
- }
- // class deriving the above abstract class
- class ChildClass extends AbstractClass
- {
- private $var3;
- public function emptyFunction() {
- echo "defined in child";
- }
- }
- // class with final method
- class FinalClass
- {
- private $var4;
- final function finalMethod() {
- echo "This function can't be overloaded";
- }
- }
- // class with static members
- class StaticClass
- {
- static $var5 = 2;
- public static function staticMethod() {
- echo "This is a static method";
- }
- }
- // array to be passed to $array argument
- $array = array('f' => "first", "s" => 'second', 1, 2.222);
- // array containing different types of objects as elements
- $vars = array(
- new SimpleClass(),
- new EmptyClass(),
- new ChildClass(),
- new FinalClass(),
- new StaticClass()
- );
- // loop through the various elements of $arrays to check the functionality of array_unshift
- $iterator = 1;
- foreach($vars as $var) {
- echo "-- Iteration $iterator --\n";
- /* with default argument */
- // returns element count in the resulting array after arguments are pushed to
- // beginning of the given array
- $temp_array = $array;
- var_dump( array_unshift($temp_array, $var) );
- // dump the resulting array
- var_dump($temp_array);
- /* with optional arguments */
- // returns element count in the resulting array after arguments are pushed to
- // beginning of the given array
- $temp_array = $array;
- var_dump( array_unshift($temp_array, $var, "hello", 'world') );
- // dump the resulting array
- var_dump($temp_array);
- $iterator++;
- }
- echo "Done";
- ?>
- --EXPECTF--
- *** Testing array_unshift() : Passing object to $var argument ***
- -- Iteration 1 --
- int(5)
- array(5) {
- [0]=>
- object(SimpleClass)#%d (1) {
- ["var1"]=>
- int(1)
- }
- ["f"]=>
- string(5) "first"
- ["s"]=>
- string(6) "second"
- [1]=>
- int(1)
- [2]=>
- float(2.222)
- }
- int(7)
- array(7) {
- [0]=>
- object(SimpleClass)#%d (1) {
- ["var1"]=>
- int(1)
- }
- [1]=>
- string(5) "hello"
- [2]=>
- string(5) "world"
- ["f"]=>
- string(5) "first"
- ["s"]=>
- string(6) "second"
- [3]=>
- int(1)
- [4]=>
- float(2.222)
- }
- -- Iteration 2 --
- int(5)
- array(5) {
- [0]=>
- object(EmptyClass)#%d (0) {
- }
- ["f"]=>
- string(5) "first"
- ["s"]=>
- string(6) "second"
- [1]=>
- int(1)
- [2]=>
- float(2.222)
- }
- int(7)
- array(7) {
- [0]=>
- object(EmptyClass)#%d (0) {
- }
- [1]=>
- string(5) "hello"
- [2]=>
- string(5) "world"
- ["f"]=>
- string(5) "first"
- ["s"]=>
- string(6) "second"
- [3]=>
- int(1)
- [4]=>
- float(2.222)
- }
- -- Iteration 3 --
- int(5)
- array(5) {
- [0]=>
- object(ChildClass)#%d (2) {
- ["var3":"ChildClass":private]=>
- NULL
- ["var2":protected]=>
- int(5)
- }
- ["f"]=>
- string(5) "first"
- ["s"]=>
- string(6) "second"
- [1]=>
- int(1)
- [2]=>
- float(2.222)
- }
- int(7)
- array(7) {
- [0]=>
- object(ChildClass)#%d (2) {
- ["var3":"ChildClass":private]=>
- NULL
- ["var2":protected]=>
- int(5)
- }
- [1]=>
- string(5) "hello"
- [2]=>
- string(5) "world"
- ["f"]=>
- string(5) "first"
- ["s"]=>
- string(6) "second"
- [3]=>
- int(1)
- [4]=>
- float(2.222)
- }
- -- Iteration 4 --
- int(5)
- array(5) {
- [0]=>
- object(FinalClass)#%d (1) {
- ["var4":"FinalClass":private]=>
- NULL
- }
- ["f"]=>
- string(5) "first"
- ["s"]=>
- string(6) "second"
- [1]=>
- int(1)
- [2]=>
- float(2.222)
- }
- int(7)
- array(7) {
- [0]=>
- object(FinalClass)#%d (1) {
- ["var4":"FinalClass":private]=>
- NULL
- }
- [1]=>
- string(5) "hello"
- [2]=>
- string(5) "world"
- ["f"]=>
- string(5) "first"
- ["s"]=>
- string(6) "second"
- [3]=>
- int(1)
- [4]=>
- float(2.222)
- }
- -- Iteration 5 --
- int(5)
- array(5) {
- [0]=>
- object(StaticClass)#%d (0) {
- }
- ["f"]=>
- string(5) "first"
- ["s"]=>
- string(6) "second"
- [1]=>
- int(1)
- [2]=>
- float(2.222)
- }
- int(7)
- array(7) {
- [0]=>
- object(StaticClass)#%d (0) {
- }
- [1]=>
- string(5) "hello"
- [2]=>
- string(5) "world"
- ["f"]=>
- string(5) "first"
- ["s"]=>
- string(6) "second"
- [3]=>
- int(1)
- [4]=>
- float(2.222)
- }
- Done
|