Creates a hash containing variables and their values */
PHP_FUNCTION(compact)
{
- zval ***args; /* function arguments array */
- int i;
+ zval ***args = NULL; /* function arguments array */
+ int num_args, i;
- if (ZEND_NUM_ARGS() < 1) {
- WRONG_PARAM_COUNT;
- }
- args = (zval ***)safe_emalloc(ZEND_NUM_ARGS(), sizeof(zval **), 0);
-
- if (zend_get_parameters_array_ex(ZEND_NUM_ARGS(), args) == FAILURE) {
- efree(args);
- WRONG_PARAM_COUNT;
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "+", &args, &num_args) == FAILURE) {
+ return;
}
if (!EG(active_symbol_table)) {
php_compact_var(EG(active_symbol_table), return_value, *args[i] TSRMLS_CC);
}
- efree(args);
+ if (args) {
+ efree(args);
+ }
}
/* }}} */
int i, /* Loop counter */
argc; /* Number of function arguments */
- /* Get the argument count and check it */
- argc = ZEND_NUM_ARGS();
- if (argc < 2) {
- WRONG_PARAM_COUNT;
- }
-
- /* Allocate arguments array and get the arguments, checking for errors. */
- args = (zval ***)safe_emalloc(argc, sizeof(zval **), 0);
- if (zend_get_parameters_array_ex(argc, args) == FAILURE) {
- efree(args);
- WRONG_PARAM_COUNT;
- }
- /* Get first argument and check that it's an array */
- stack = *args[0];
- if (Z_TYPE_P(stack) != IS_ARRAY) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "First argument should be an array");
- efree(args);
- RETURN_FALSE;
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a+", &stack, &args, &argc) == FAILURE) {
+ return;
}
/* For each subsequent argument, make it a reference, increase refcount, and add it to the end of the array */
- for (i=1; i<argc; i++) {
+ for (i = 0; i < argc; i++) {
new_var = *args[i];
Z_ADDREF_P(new_var);
*stack; /* Input stack */
HashTable *new_hash; /* New hashtable for the stack */
int argc; /* Number of function arguments */
-
- /* Get the argument count and check it */
- argc = ZEND_NUM_ARGS();
- if (argc < 2) {
- WRONG_PARAM_COUNT;
- }
-
- /* Allocate arguments array and get the arguments, checking for errors. */
- args = (zval ***)safe_emalloc(argc, sizeof(zval **), 0);
- if (zend_get_parameters_array_ex(argc, args) == FAILURE) {
- efree(args);
- WRONG_PARAM_COUNT;
- }
-
- /* Get first argument and check that it's an array */
- stack = *args[0];
- if (Z_TYPE_P(stack) != IS_ARRAY) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "The first argument should be an array");
- efree(args);
- RETURN_FALSE;
+
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a+", &stack, &args, &argc) == FAILURE) {
+ return;
}
/* Use splice to insert the elements at the beginning. Destroy old
* hashtable and replace it with new one */
- new_hash = php_splice(Z_ARRVAL_P(stack), 0, 0, &args[1], argc - 1, NULL);
+ new_hash = php_splice(Z_ARRVAL_P(stack), 0, 0, &args[0], argc, NULL);
zend_hash_destroy(Z_ARRVAL_P(stack));
if (Z_ARRVAL_P(stack) == &EG(symbol_table)) {
zend_reset_all_cv(&EG(symbol_table) TSRMLS_CC);
zval ***args = NULL;
int argc, i, params_ok = 1, init_size = 0;
- /* Get the argument count and check it */
- argc = ZEND_NUM_ARGS();
- if (argc < 1) {
- WRONG_PARAM_COUNT;
- }
-
- /* Allocate arguments array and get the arguments, checking for errors. */
- args = (zval ***)safe_emalloc(argc, sizeof(zval **), 0);
- if (zend_get_parameters_array_ex(argc, args) == FAILURE) {
- efree(args);
- WRONG_PARAM_COUNT;
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "+", &args, &argc) == FAILURE) {
+ return;
}
for (i = 0; i < argc; i++) {
int sort_type = PHP_SORT_REGULAR;
int i, k;
- /* Get the argument count and check it */
- argc = ZEND_NUM_ARGS();
- if (argc < 1) {
- WRONG_PARAM_COUNT;
- }
-
- /* Allocate arguments array and get the arguments, checking for errors. */
- args = (zval ***)safe_emalloc(argc, sizeof(zval **), 0);
- if (zend_get_parameters_array_ex(argc, args) == FAILURE) {
- efree(args);
- WRONG_PARAM_COUNT;
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "+", &args, &argc) == FAILURE) {
+ return;
}
/* Allocate space for storing pointers to input arrays and sort flags. */
}
*** Testing error conditions ***
-Warning: Wrong parameter count for array_merge() in %s on line %d
+Warning: array_merge() expects at least 1 parameter, 0 given in %s on line %d
NULL
Warning: array_merge(): Argument #1 is not an array in %s on line %d
-- Testing array_merge() function with less than expected no. of arguments --
-Warning: Wrong parameter count for array_merge() in %s on line %d
+Warning: array_merge() expects at least 1 parameter, 0 given in %s on line %d
NULL
-Done
\ No newline at end of file
+Done
-- Testing array_merge_recursive() function with Zero arguments --
-Warning: Wrong parameter count for array_merge_recursive() in %s on line %d
+Warning: array_merge_recursive() expects at least 1 parameter, 0 given in %s on line %d
NULL
Done
--EXPECTF--
*** Testing Error Conditions ***
-Warning: Wrong parameter count for array_push() in %s on line %d
+Warning: array_push() expects at least 2 parameters, 0 given in %s on line %d
NULL
-Warning: array_push(): First argument should be an array in %s on line %d
-bool(false)
+Warning: array_push() expects parameter 1 to be array, integer given in %s on line %d
+NULL
-Warning: array_push(): First argument should be an array in %s on line %d
-bool(false)
+Warning: array_push() expects parameter 1 to be array, string given in %s on line %d
+NULL
int(11)
int(1)
-- Testing array_push() function with less than expected no. of arguments --
-Warning: Wrong parameter count for array_push() in %s on line %d
+Warning: array_push() expects at least 2 parameters, 1 given in %s on line %d
NULL
-Done
\ No newline at end of file
+Done
-- Iteration 1 --
-Warning: array_push(): First argument should be an array in %s on line %d
-bool(false)
+Warning: array_push() expects parameter 1 to be array, integer given in %s on line %d
+NULL
-- Iteration 2 --
-Warning: array_push(): First argument should be an array in %s on line %d
-bool(false)
+Warning: array_push() expects parameter 1 to be array, integer given in %s on line %d
+NULL
-- Iteration 3 --
-Warning: array_push(): First argument should be an array in %s on line %d
-bool(false)
+Warning: array_push() expects parameter 1 to be array, integer given in %s on line %d
+NULL
-- Iteration 4 --
-Warning: array_push(): First argument should be an array in %s on line %d
-bool(false)
+Warning: array_push() expects parameter 1 to be array, integer given in %s on line %d
+NULL
-- Iteration 5 --
-Warning: array_push(): First argument should be an array in %s on line %d
-bool(false)
+Warning: array_push() expects parameter 1 to be array, double given in %s on line %d
+NULL
-- Iteration 6 --
-Warning: array_push(): First argument should be an array in %s on line %d
-bool(false)
+Warning: array_push() expects parameter 1 to be array, double given in %s on line %d
+NULL
-- Iteration 7 --
-Warning: array_push(): First argument should be an array in %s on line %d
-bool(false)
+Warning: array_push() expects parameter 1 to be array, double given in %s on line %d
+NULL
-- Iteration 8 --
-Warning: array_push(): First argument should be an array in %s on line %d
-bool(false)
+Warning: array_push() expects parameter 1 to be array, double given in %s on line %d
+NULL
-- Iteration 9 --
-Warning: array_push(): First argument should be an array in %s on line %d
-bool(false)
+Warning: array_push() expects parameter 1 to be array, double given in %s on line %d
+NULL
-- Iteration 10 --
-Warning: array_push(): First argument should be an array in %s on line %d
-bool(false)
+Warning: array_push() expects parameter 1 to be array, null given in %s on line %d
+NULL
-- Iteration 11 --
-Warning: array_push(): First argument should be an array in %s on line %d
-bool(false)
+Warning: array_push() expects parameter 1 to be array, null given in %s on line %d
+NULL
-- Iteration 12 --
-Warning: array_push(): First argument should be an array in %s on line %d
-bool(false)
+Warning: array_push() expects parameter 1 to be array, boolean given in %s on line %d
+NULL
-- Iteration 13 --
-Warning: array_push(): First argument should be an array in %s on line %d
-bool(false)
+Warning: array_push() expects parameter 1 to be array, boolean given in %s on line %d
+NULL
-- Iteration 14 --
-Warning: array_push(): First argument should be an array in %s on line %d
-bool(false)
+Warning: array_push() expects parameter 1 to be array, boolean given in %s on line %d
+NULL
-- Iteration 15 --
-Warning: array_push(): First argument should be an array in %s on line %d
-bool(false)
+Warning: array_push() expects parameter 1 to be array, boolean given in %s on line %d
+NULL
-- Iteration 16 --
-Warning: array_push(): First argument should be an array in %s on line %d
-bool(false)
+Warning: array_push() expects parameter 1 to be array, string given in %s on line %d
+NULL
-- Iteration 17 --
-Warning: array_push(): First argument should be an array in %s on line %d
-bool(false)
+Warning: array_push() expects parameter 1 to be array, string given in %s on line %d
+NULL
-- Iteration 18 --
int(1)
-- Iteration 19 --
-Warning: array_push(): First argument should be an array in %s on line %d
-bool(false)
+Warning: array_push() expects parameter 1 to be array, string given in %s on line %d
+NULL
-- Iteration 20 --
-Warning: array_push(): First argument should be an array in %s on line %d
-bool(false)
+Warning: array_push() expects parameter 1 to be array, string given in %s on line %d
+NULL
-- Iteration 21 --
-Warning: array_push(): First argument should be an array in %s on line %d
-bool(false)
+Warning: array_push() expects parameter 1 to be array, string given in %s on line %d
+NULL
-- Iteration 22 --
-Warning: array_push(): First argument should be an array in %s on line %d
-bool(false)
+Warning: array_push() expects parameter 1 to be array, object given in %s on line %d
+NULL
-- Iteration 23 --
-Warning: array_push(): First argument should be an array in %s on line %d
-bool(false)
+Warning: array_push() expects parameter 1 to be array, null given in %s on line %d
+NULL
-- Iteration 24 --
-Warning: array_push(): First argument should be an array in %s on line %d
-bool(false)
+Warning: array_push() expects parameter 1 to be array, null given in %s on line %d
+NULL
-- Iteration 25 --
-Warning: array_push(): First argument should be an array in %s on line %d
-bool(false)
-Done
\ No newline at end of file
+Warning: array_push() expects parameter 1 to be array, resource given in %s on line %d
+NULL
+Done
string(0) ""
}
-Warning: array_unshift(): The first argument should be an array in %s on line %d
-bool(false)
+Warning: array_unshift() expects parameter 1 to be array, string given in %s on line %d
+NULL
array(1) {
[0]=>
string(0) ""
-- Testing array_unshift() function with Zero arguments --
-Warning: Wrong parameter count for array_unshift() in %s on line %d
+Warning: array_unshift() expects at least 2 parameters, 0 given in %s on line %d
NULL
-- Testing array_unshift() function with less than expected no. of arguments --
-Warning: Wrong parameter count for array_unshift() in %s on line %d
+Warning: array_unshift() expects at least 2 parameters, 1 given in %s on line %d
NULL
Done
*** Testing array_unshift() : unexpected values for $array argument ***
-- Iteration 1 --
-Warning: array_unshift(): The first argument should be an array in %s on line %d
-bool(false)
+Warning: array_unshift() expects parameter 1 to be array, integer given in %s on line %d
+NULL
int(0)
-Warning: array_unshift(): The first argument should be an array in %s on line %d
-bool(false)
+Warning: array_unshift() expects parameter 1 to be array, integer given in %s on line %d
+NULL
int(0)
-- Iteration 2 --
-Warning: array_unshift(): The first argument should be an array in %s on line %d
-bool(false)
+Warning: array_unshift() expects parameter 1 to be array, integer given in %s on line %d
+NULL
int(1)
-Warning: array_unshift(): The first argument should be an array in %s on line %d
-bool(false)
+Warning: array_unshift() expects parameter 1 to be array, integer given in %s on line %d
+NULL
int(1)
-- Iteration 3 --
-Warning: array_unshift(): The first argument should be an array in %s on line %d
-bool(false)
+Warning: array_unshift() expects parameter 1 to be array, integer given in %s on line %d
+NULL
int(12345)
-Warning: array_unshift(): The first argument should be an array in %s on line %d
-bool(false)
+Warning: array_unshift() expects parameter 1 to be array, integer given in %s on line %d
+NULL
int(12345)
-- Iteration 4 --
-Warning: array_unshift(): The first argument should be an array in %s on line %d
-bool(false)
+Warning: array_unshift() expects parameter 1 to be array, integer given in %s on line %d
+NULL
int(-2345)
-Warning: array_unshift(): The first argument should be an array in %s on line %d
-bool(false)
+Warning: array_unshift() expects parameter 1 to be array, integer given in %s on line %d
+NULL
int(-2345)
-- Iteration 5 --
-Warning: array_unshift(): The first argument should be an array in %s on line %d
-bool(false)
+Warning: array_unshift() expects parameter 1 to be array, double given in %s on line %d
+NULL
float(10.5)
-Warning: array_unshift(): The first argument should be an array in %s on line %d
-bool(false)
+Warning: array_unshift() expects parameter 1 to be array, double given in %s on line %d
+NULL
float(10.5)
-- Iteration 6 --
-Warning: array_unshift(): The first argument should be an array in %s on line %d
-bool(false)
+Warning: array_unshift() expects parameter 1 to be array, double given in %s on line %d
+NULL
float(-10.5)
-Warning: array_unshift(): The first argument should be an array in %s on line %d
-bool(false)
+Warning: array_unshift() expects parameter 1 to be array, double given in %s on line %d
+NULL
float(-10.5)
-- Iteration 7 --
-Warning: array_unshift(): The first argument should be an array in %s on line %d
-bool(false)
+Warning: array_unshift() expects parameter 1 to be array, double given in %s on line %d
+NULL
float(123456789000)
-Warning: array_unshift(): The first argument should be an array in %s on line %d
-bool(false)
+Warning: array_unshift() expects parameter 1 to be array, double given in %s on line %d
+NULL
float(123456789000)
-- Iteration 8 --
-Warning: array_unshift(): The first argument should be an array in %s on line %d
-bool(false)
+Warning: array_unshift() expects parameter 1 to be array, double given in %s on line %d
+NULL
float(1.23456789E-9)
-Warning: array_unshift(): The first argument should be an array in %s on line %d
-bool(false)
+Warning: array_unshift() expects parameter 1 to be array, double given in %s on line %d
+NULL
float(1.23456789E-9)
-- Iteration 9 --
-Warning: array_unshift(): The first argument should be an array in %s on line %d
-bool(false)
+Warning: array_unshift() expects parameter 1 to be array, double given in %s on line %d
+NULL
float(0.5)
-Warning: array_unshift(): The first argument should be an array in %s on line %d
-bool(false)
+Warning: array_unshift() expects parameter 1 to be array, double given in %s on line %d
+NULL
float(0.5)
-- Iteration 10 --
-Warning: array_unshift(): The first argument should be an array in %s on line %d
-bool(false)
+Warning: array_unshift() expects parameter 1 to be array, null given in %s on line %d
+NULL
NULL
-Warning: array_unshift(): The first argument should be an array in %s on line %d
-bool(false)
+Warning: array_unshift() expects parameter 1 to be array, null given in %s on line %d
+NULL
NULL
-- Iteration 11 --
-Warning: array_unshift(): The first argument should be an array in %s on line %d
-bool(false)
+Warning: array_unshift() expects parameter 1 to be array, null given in %s on line %d
+NULL
NULL
-Warning: array_unshift(): The first argument should be an array in %s on line %d
-bool(false)
+Warning: array_unshift() expects parameter 1 to be array, null given in %s on line %d
+NULL
NULL
-- Iteration 12 --
-Warning: array_unshift(): The first argument should be an array in %s on line %d
-bool(false)
+Warning: array_unshift() expects parameter 1 to be array, boolean given in %s on line %d
+NULL
bool(true)
-Warning: array_unshift(): The first argument should be an array in %s on line %d
-bool(false)
+Warning: array_unshift() expects parameter 1 to be array, boolean given in %s on line %d
+NULL
bool(true)
-- Iteration 13 --
-Warning: array_unshift(): The first argument should be an array in %s on line %d
-bool(false)
+Warning: array_unshift() expects parameter 1 to be array, boolean given in %s on line %d
+NULL
bool(false)
-Warning: array_unshift(): The first argument should be an array in %s on line %d
-bool(false)
+Warning: array_unshift() expects parameter 1 to be array, boolean given in %s on line %d
+NULL
bool(false)
-- Iteration 14 --
-Warning: array_unshift(): The first argument should be an array in %s on line %d
-bool(false)
+Warning: array_unshift() expects parameter 1 to be array, boolean given in %s on line %d
+NULL
bool(true)
-Warning: array_unshift(): The first argument should be an array in %s on line %d
-bool(false)
+Warning: array_unshift() expects parameter 1 to be array, boolean given in %s on line %d
+NULL
bool(true)
-- Iteration 15 --
-Warning: array_unshift(): The first argument should be an array in %s on line %d
-bool(false)
+Warning: array_unshift() expects parameter 1 to be array, boolean given in %s on line %d
+NULL
bool(false)
-Warning: array_unshift(): The first argument should be an array in %s on line %d
-bool(false)
+Warning: array_unshift() expects parameter 1 to be array, boolean given in %s on line %d
+NULL
bool(false)
-- Iteration 16 --
-Warning: array_unshift(): The first argument should be an array in %s on line %d
-bool(false)
+Warning: array_unshift() expects parameter 1 to be array, string given in %s on line %d
+NULL
string(0) ""
-Warning: array_unshift(): The first argument should be an array in %s on line %d
-bool(false)
+Warning: array_unshift() expects parameter 1 to be array, string given in %s on line %d
+NULL
string(0) ""
-- Iteration 17 --
-Warning: array_unshift(): The first argument should be an array in %s on line %d
-bool(false)
+Warning: array_unshift() expects parameter 1 to be array, string given in %s on line %d
+NULL
string(0) ""
-Warning: array_unshift(): The first argument should be an array in %s on line %d
-bool(false)
+Warning: array_unshift() expects parameter 1 to be array, string given in %s on line %d
+NULL
string(0) ""
-- Iteration 18 --
-Warning: array_unshift(): The first argument should be an array in %s on line %d
-bool(false)
+Warning: array_unshift() expects parameter 1 to be array, string given in %s on line %d
+NULL
string(6) "string"
-Warning: array_unshift(): The first argument should be an array in %s on line %d
-bool(false)
+Warning: array_unshift() expects parameter 1 to be array, string given in %s on line %d
+NULL
string(6) "string"
-- Iteration 19 --
-Warning: array_unshift(): The first argument should be an array in %s on line %d
-bool(false)
+Warning: array_unshift() expects parameter 1 to be array, string given in %s on line %d
+NULL
string(6) "string"
-Warning: array_unshift(): The first argument should be an array in %s on line %d
-bool(false)
+Warning: array_unshift() expects parameter 1 to be array, string given in %s on line %d
+NULL
string(6) "string"
-- Iteration 20 --
-Warning: array_unshift(): The first argument should be an array in %s on line %d
-bool(false)
+Warning: array_unshift() expects parameter 1 to be array, string given in %s on line %d
+NULL
string(11) "hello world"
-Warning: array_unshift(): The first argument should be an array in %s on line %d
-bool(false)
+Warning: array_unshift() expects parameter 1 to be array, string given in %s on line %d
+NULL
string(11) "hello world"
-- Iteration 21 --
-Warning: array_unshift(): The first argument should be an array in %s on line %d
-bool(false)
-object(classA)#%d (0) {
+Warning: array_unshift() expects parameter 1 to be array, object given in %s on line %d
+NULL
+object(classA)#1 (0) {
}
-Warning: array_unshift(): The first argument should be an array in %s on line %d
-bool(false)
-object(classA)#%d (0) {
+Warning: array_unshift() expects parameter 1 to be array, object given in %s on line %d
+NULL
+object(classA)#1 (0) {
}
-- Iteration 22 --
-Warning: array_unshift(): The first argument should be an array in %s on line %d
-bool(false)
+Warning: array_unshift() expects parameter 1 to be array, null given in %s on line %d
+NULL
NULL
-Warning: array_unshift(): The first argument should be an array in %s on line %d
-bool(false)
+Warning: array_unshift() expects parameter 1 to be array, null given in %s on line %d
+NULL
NULL
-- Iteration 23 --
-Warning: array_unshift(): The first argument should be an array in %s on line %d
-bool(false)
+Warning: array_unshift() expects parameter 1 to be array, null given in %s on line %d
+NULL
NULL
-Warning: array_unshift(): The first argument should be an array in %s on line %d
-bool(false)
+Warning: array_unshift() expects parameter 1 to be array, null given in %s on line %d
+NULL
NULL
-- Iteration 24 --
-Warning: array_unshift(): The first argument should be an array in %s on line %d
-bool(false)
-resource(%d) of type (stream)
+Warning: array_unshift() expects parameter 1 to be array, resource given in %s on line %d
+NULL
+resource(5) of type (stream)
-Warning: array_unshift(): The first argument should be an array in %s on line %d
-bool(false)
-resource(%d) of type (stream)
+Warning: array_unshift() expects parameter 1 to be array, resource given in %s on line %d
+NULL
+resource(5) of type (stream)
Done
-- Testing compact() function with Zero arguments --
-Warning: Wrong parameter count for compact() in %s on line %d
+Warning: compact() expects at least 1 parameter, 0 given in %s on line %d
NULL
Done