} else if (numVars) {
current = args[objIndex++];
zval_dtor(*current);
- Z_LVAL(**current) = value;
+ ZVAL_LONG(*current, value);
} else {
add_index_long(*return_value, objIndex++, value);
}
} else if (numVars) {
current = args[objIndex++];
zval_dtor(*current);
- Z_DVAL_PP( current ) = dvalue;
+ ZVAL_DOUBLE(*current, dvalue);
} else {
add_index_double( *return_value, objIndex++, dvalue );
}
--- /dev/null
+--TEST--
+Bug #47322 (sscanf %d does't work)
+--FILE--
+<?php
+
+sscanf("15:59:58.2","%d:%d:%f", $a, $b, $c);
+echo "[$a][$b][$c]\n";
+
+sscanf("15:59:58.2","%d:%d:%f", $a, $b, $c);
+echo "[$a][$b][$c]\n";
+
+sscanf("15:59:foo","%d:%d:%s", $a, $b, $c);
+echo "[$a][$b][$c]\n";
+
+?>
+--EXPECT--
+[15][59][58.2]
+[15][59][58.2]
+[15][59][foo]