summaryrefslogtreecommitdiff
path: root/ext/standard/tests/array/array_unshift_object.phpt
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@baserock.org>2013-03-14 05:42:27 +0000
committer <>2013-04-03 16:25:08 +0000
commitc4dd7a1a684490673e25aaf4fabec5df138854c4 (patch)
tree4d57c44caae4480efff02b90b9be86f44bf25409 /ext/standard/tests/array/array_unshift_object.phpt
downloadphp2-master.tar.gz
Imported from /home/lorry/working-area/delta_php2/php-5.4.13.tar.bz2.HEADphp-5.4.13master
Diffstat (limited to 'ext/standard/tests/array/array_unshift_object.phpt')
-rw-r--r--ext/standard/tests/array/array_unshift_object.phpt287
1 files changed, 287 insertions, 0 deletions
diff --git a/ext/standard/tests/array/array_unshift_object.phpt b/ext/standard/tests/array/array_unshift_object.phpt
new file mode 100644
index 0000000..e615537
--- /dev/null
+++ b/ext/standard/tests/array/array_unshift_object.phpt
@@ -0,0 +1,287 @@
+--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