summaryrefslogtreecommitdiff
path: root/ext/standard/tests/array/array_fill_keys_variation2.phpt
diff options
context:
space:
mode:
Diffstat (limited to 'ext/standard/tests/array/array_fill_keys_variation2.phpt')
-rw-r--r--ext/standard/tests/array/array_fill_keys_variation2.phpt81
1 files changed, 81 insertions, 0 deletions
diff --git a/ext/standard/tests/array/array_fill_keys_variation2.phpt b/ext/standard/tests/array/array_fill_keys_variation2.phpt
new file mode 100644
index 0000000..4f3681a
--- /dev/null
+++ b/ext/standard/tests/array/array_fill_keys_variation2.phpt
@@ -0,0 +1,81 @@
+--TEST--
+Test array_fill_keys() function : variation of parameter
+--FILE--
+<?php
+/* Prototype : proto array array_fill_keys(array keys, mixed val)
+ * Description: Create an array using the elements of the first parameter as keys each initialized to val
+ * Source code: ext/standard/array.c
+ * Alias to functions:
+ */
+
+/* Testing with reference types for the arguments */
+
+echo "*** Testing array_fill_keys() : parameter variations ***\n";
+
+$nullVal = null;
+$simpleStr = "simple";
+$refString = &$simpleStr;
+$fp = fopen(__FILE__, "r");
+$emptyArr = array();
+$bool = false;
+$float = 2.4;
+
+class classA {
+ public function __toString() { return "Class A object"; }
+}
+$obj = new classA();
+
+
+echo "\n-- Testing array_fill_keys() function with reference value --\n";
+$keyedArray = array("one", "two");
+var_dump(array_fill_keys($keyedArray, $refString));
+
+echo "\n-- Testing array_fill_keys() function with reference keys --\n";
+$refKeys = array("one", &$simpleStr);
+$res = array_fill_keys($refKeys, $simpleStr);
+var_dump($res);
+$simpleStr = "bob";
+var_dump($res);
+
+
+echo "\n-- Testing array_fill_keys() function with reference array input --\n";
+$newArray = array("one", "two");
+$refArray = &$newArray;
+var_dump(array_fill_keys($refArray, $simpleStr));
+
+fclose($fp);
+echo "Done";
+?>
+--EXPECTF--
+*** Testing array_fill_keys() : parameter variations ***
+
+-- Testing array_fill_keys() function with reference value --
+array(2) {
+ ["one"]=>
+ string(6) "simple"
+ ["two"]=>
+ string(6) "simple"
+}
+
+-- Testing array_fill_keys() function with reference keys --
+array(2) {
+ ["one"]=>
+ string(6) "simple"
+ ["simple"]=>
+ string(6) "simple"
+}
+array(2) {
+ ["one"]=>
+ string(6) "simple"
+ ["simple"]=>
+ string(6) "simple"
+}
+
+-- Testing array_fill_keys() function with reference array input --
+array(2) {
+ ["one"]=>
+ string(3) "bob"
+ ["two"]=>
+ string(3) "bob"
+}
+Done \ No newline at end of file