summaryrefslogtreecommitdiff
path: root/ext/standard/tests/strings/bug42107.phpt
diff options
context:
space:
mode:
Diffstat (limited to 'ext/standard/tests/strings/bug42107.phpt')
-rw-r--r--ext/standard/tests/strings/bug42107.phpt47
1 files changed, 47 insertions, 0 deletions
diff --git a/ext/standard/tests/strings/bug42107.phpt b/ext/standard/tests/strings/bug42107.phpt
new file mode 100644
index 000000000..d97f8917e
--- /dev/null
+++ b/ext/standard/tests/strings/bug42107.phpt
@@ -0,0 +1,47 @@
+--TEST--
+Bug #42107 (sscanf() broken when using %2$s type format parameters)
+--FILE--
+<?php
+
+var_dump(sscanf('one two', '%1$s %2$s'));
+var_dump(sscanf('one two', '%2$s %1$s'));
+echo "--\n";
+sscanf('one two', '%1$s %2$s', $foo, $bar);
+var_dump($foo, $bar);
+sscanf('one two', '%2$s %1$s', $foo, $bar);
+var_dump($foo, $bar);
+echo "--\n";
+var_dump(sscanf('one two', '%1$d %2$d'));
+var_dump(sscanf('one two', '%1$d'));
+echo "Done\n";
+?>
+--EXPECTF--
+array(2) {
+ [0]=>
+ string(3) "one"
+ [1]=>
+ string(3) "two"
+}
+array(2) {
+ [0]=>
+ string(3) "two"
+ [1]=>
+ string(3) "one"
+}
+--
+string(3) "one"
+string(3) "two"
+string(3) "two"
+string(3) "one"
+--
+array(2) {
+ [0]=>
+ NULL
+ [1]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+Done