#define MULTISORT_ABORT \
efree(func); \
efree(arrays); \
- RETURN_FALSE;
+ return;
static void array_bucket_p_sawp(void *p, void *q) /* {{{ */ {
Bucket *t;
sort_order = Z_LVAL_P(arg) == PHP_SORT_DESC ? PHP_SORT_DESC : PHP_SORT_ASC;
parse_state[MULTISORT_ORDER] = 0;
} else {
- php_error_docref(NULL, E_WARNING, "Argument #%d is expected to be an array or sorting flag that has not already been specified", i + 1);
+ zend_type_error("Argument #%d is expected to be an array or sorting flag that has not already been specified", i + 1);
MULTISORT_ABORT;
}
break;
sort_type = (int)Z_LVAL_P(arg);
parse_state[MULTISORT_TYPE] = 0;
} else {
- php_error_docref(NULL, E_WARNING, "Argument #%d is expected to be an array or sorting flag that has not already been specified", i + 1);
+ zend_type_error("Argument #%d is expected to be an array or sorting flag that has not already been specified", i + 1);
MULTISORT_ABORT;
}
break;
default:
- php_error_docref(NULL, E_WARNING, "Argument #%d is an unknown sort flag", i + 1);
+ zend_type_error("Argument #%d is an unknown sort flag", i + 1);
MULTISORT_ABORT;
break;
}
} else {
- php_error_docref(NULL, E_WARNING, "Argument #%d is expected to be an array or a sort flag", i + 1);
+ zend_type_error("Argument #%d is expected to be an array or a sort flag", i + 1);
MULTISORT_ABORT;
}
}
array_size = zend_hash_num_elements(Z_ARRVAL_P(arrays[0]));
for (i = 0; i < num_arrays; i++) {
if (zend_hash_num_elements(Z_ARRVAL_P(arrays[i])) != (uint32_t)array_size) {
- php_error_docref(NULL, E_WARNING, "Array sizes are inconsistent");
+ zend_throw_error(NULL, "Array sizes are inconsistent");
MULTISORT_ABORT;
}
}
echo "\n-- Testing array_multisort() function with repeated flags --\n";
$ar1 = array(1);
-var_dump( array_multisort($ar1, SORT_ASC, SORT_ASC) );
+try {
+ var_dump( array_multisort($ar1, SORT_ASC, SORT_ASC) );
+} catch (Error $e) {
+ echo $e->getMessage() . "\n";
+}
echo "\n-- Testing array_multisort() function with repeated flags --\n";
$ar1 = array(1);
-var_dump( array_multisort($ar1, SORT_STRING, SORT_NUMERIC) );
+try {
+ var_dump( array_multisort($ar1, SORT_STRING, SORT_NUMERIC) );
+} catch (Error $e) {
+ echo $e->getMessage() . "\n";
+}
?>
===DONE===
---EXPECTF--
+--EXPECT--
*** Testing array_multisort() : error conditions ***
-- Testing array_multisort() function with repeated flags --
-
-Warning: array_multisort(): Argument #3 is expected to be an array or sorting flag that has not already been specified in %sarray_multisort_error.php on line %d
-bool(false)
+Argument #3 is expected to be an array or sorting flag that has not already been specified
-- Testing array_multisort() function with repeated flags --
-
-Warning: array_multisort(): Argument #3 is expected to be an array or sorting flag that has not already been specified in %sarray_multisort_error.php on line %d
-bool(false)
+Argument #3 is expected to be an array or sorting flag that has not already been specified
===DONE===
foreach($inputs as $key =>$value) {
echo "\n--$key--\n";
- var_dump( array_multisort($value));
+ try {
+ var_dump( array_multisort($value));
+ } catch (Error $e) {
+ echo $e->getMessage() . "\n";
+ }
};
?>
===DONE===
---EXPECTF--
+--EXPECT--
*** Testing array_multisort() : usage variation ***
--int 0--
-Error: 2 - array_multisort(): Argument #1 is expected to be an array or sorting flag that has not already been specified, %sarray_multisort_variation1.php(%d)
-bool(false)
+Argument #1 is expected to be an array or sorting flag that has not already been specified
--int 1--
-Error: 2 - array_multisort(): Argument #1 is expected to be an array or sorting flag that has not already been specified, %sarray_multisort_variation1.php(%d)
-bool(false)
+Argument #1 is expected to be an array or sorting flag that has not already been specified
--int 12345--
-Error: 2 - array_multisort(): Argument #1 is an unknown sort flag, %sarray_multisort_variation1.php(%d)
-bool(false)
+Argument #1 is an unknown sort flag
--int -12345--
-Error: 2 - array_multisort(): Argument #1 is an unknown sort flag, %sarray_multisort_variation1.php(%d)
-bool(false)
+Argument #1 is an unknown sort flag
--float 10.5--
-Error: 2 - array_multisort(): Argument #1 is expected to be an array or a sort flag, %sarray_multisort_variation1.php(%d)
-bool(false)
+Argument #1 is expected to be an array or a sort flag
--float -10.5--
-Error: 2 - array_multisort(): Argument #1 is expected to be an array or a sort flag, %sarray_multisort_variation1.php(%d)
-bool(false)
+Argument #1 is expected to be an array or a sort flag
--float 12.3456789000e10--
-Error: 2 - array_multisort(): Argument #1 is expected to be an array or a sort flag, %sarray_multisort_variation1.php(%d)
-bool(false)
+Argument #1 is expected to be an array or a sort flag
--float -12.3456789000e10--
-Error: 2 - array_multisort(): Argument #1 is expected to be an array or a sort flag, %sarray_multisort_variation1.php(%d)
-bool(false)
+Argument #1 is expected to be an array or a sort flag
--float .5--
-Error: 2 - array_multisort(): Argument #1 is expected to be an array or a sort flag, %sarray_multisort_variation1.php(%d)
-bool(false)
+Argument #1 is expected to be an array or a sort flag
--uppercase NULL--
-Error: 2 - array_multisort(): Argument #1 is expected to be an array or a sort flag, %sarray_multisort_variation1.php(%d)
-bool(false)
+Argument #1 is expected to be an array or a sort flag
--lowercase null--
-Error: 2 - array_multisort(): Argument #1 is expected to be an array or a sort flag, %sarray_multisort_variation1.php(%d)
-bool(false)
+Argument #1 is expected to be an array or a sort flag
--lowercase true--
-Error: 2 - array_multisort(): Argument #1 is expected to be an array or a sort flag, %sarray_multisort_variation1.php(%d)
-bool(false)
+Argument #1 is expected to be an array or a sort flag
--lowercase false--
-Error: 2 - array_multisort(): Argument #1 is expected to be an array or a sort flag, %sarray_multisort_variation1.php(%d)
-bool(false)
+Argument #1 is expected to be an array or a sort flag
--uppercase TRUE--
-Error: 2 - array_multisort(): Argument #1 is expected to be an array or a sort flag, %sarray_multisort_variation1.php(%d)
-bool(false)
+Argument #1 is expected to be an array or a sort flag
--uppercase FALSE--
-Error: 2 - array_multisort(): Argument #1 is expected to be an array or a sort flag, %sarray_multisort_variation1.php(%d)
-bool(false)
+Argument #1 is expected to be an array or a sort flag
--empty string DQ--
-Error: 2 - array_multisort(): Argument #1 is expected to be an array or a sort flag, %sarray_multisort_variation1.php(%d)
-bool(false)
+Argument #1 is expected to be an array or a sort flag
--empty string SQ--
-Error: 2 - array_multisort(): Argument #1 is expected to be an array or a sort flag, %sarray_multisort_variation1.php(%d)
-bool(false)
+Argument #1 is expected to be an array or a sort flag
--string DQ--
-Error: 2 - array_multisort(): Argument #1 is expected to be an array or a sort flag, %sarray_multisort_variation1.php(%d)
-bool(false)
+Argument #1 is expected to be an array or a sort flag
--string SQ--
-Error: 2 - array_multisort(): Argument #1 is expected to be an array or a sort flag, %sarray_multisort_variation1.php(%d)
-bool(false)
+Argument #1 is expected to be an array or a sort flag
--mixed case string--
-Error: 2 - array_multisort(): Argument #1 is expected to be an array or a sort flag, %sarray_multisort_variation1.php(%d)
-bool(false)
+Argument #1 is expected to be an array or a sort flag
--heredoc--
-Error: 2 - array_multisort(): Argument #1 is expected to be an array or a sort flag, %sarray_multisort_variation1.php(%d)
-bool(false)
+Argument #1 is expected to be an array or a sort flag
--instance of classWithToString--
-Error: 2 - array_multisort(): Argument #1 is expected to be an array or a sort flag, %sarray_multisort_variation1.php(%d)
-bool(false)
+Argument #1 is expected to be an array or a sort flag
--instance of classWithoutToString--
-Error: 2 - array_multisort(): Argument #1 is expected to be an array or a sort flag, %sarray_multisort_variation1.php(%d)
-bool(false)
+Argument #1 is expected to be an array or a sort flag
--undefined var--
-Error: 2 - array_multisort(): Argument #1 is expected to be an array or a sort flag, %sarray_multisort_variation1.php(%d)
-bool(false)
+Argument #1 is expected to be an array or a sort flag
--unset var--
-Error: 2 - array_multisort(): Argument #1 is expected to be an array or a sort flag, %sarray_multisort_variation1.php(%d)
-bool(false)
+Argument #1 is expected to be an array or a sort flag
===DONE===
// loop through each element of the array for SORT_REGULAR|SORT_NUMERIC|SORT_STRING|SORT_NATURAL|SORT_FLAG_CASE]]
foreach($inputs as $key =>$value) {
- echo "\n--$key--\n";
- var_dump( array_multisort($ar1, $value) );
+ echo "\n--$key--\n";
+ try {
+ var_dump( array_multisort($ar1, $value) );
+ } catch (Error $e) {
+ echo $e->getMessage() . "\n";
+ }
};
?>
===DONE===
---EXPECTF--
+--EXPECT--
*** Testing array_multisort() : usage variation ***
--int 0--
bool(true)
--int 12345--
-Error: 2 - array_multisort(): Argument #2 is an unknown sort flag, %sarray_multisort_variation2.php(%d)
-bool(false)
+Argument #2 is an unknown sort flag
--int -12345--
-Error: 2 - array_multisort(): Argument #2 is an unknown sort flag, %sarray_multisort_variation2.php(%d)
-bool(false)
+Argument #2 is an unknown sort flag
--float 10.5--
-Error: 2 - array_multisort(): Argument #2 is expected to be an array or a sort flag, %sarray_multisort_variation2.php(%d)
-bool(false)
+Argument #2 is expected to be an array or a sort flag
--float -10.5--
-Error: 2 - array_multisort(): Argument #2 is expected to be an array or a sort flag, %sarray_multisort_variation2.php(%d)
-bool(false)
+Argument #2 is expected to be an array or a sort flag
--float 12.3456789000e10--
-Error: 2 - array_multisort(): Argument #2 is expected to be an array or a sort flag, %sarray_multisort_variation2.php(%d)
-bool(false)
+Argument #2 is expected to be an array or a sort flag
--float -12.3456789000e10--
-Error: 2 - array_multisort(): Argument #2 is expected to be an array or a sort flag, %sarray_multisort_variation2.php(%d)
-bool(false)
+Argument #2 is expected to be an array or a sort flag
--float .5--
-Error: 2 - array_multisort(): Argument #2 is expected to be an array or a sort flag, %sarray_multisort_variation2.php(%d)
-bool(false)
+Argument #2 is expected to be an array or a sort flag
--empty array--
-Error: 2 - array_multisort(): Array sizes are inconsistent, %sarray_multisort_variation2.php(%d)
-bool(false)
+Array sizes are inconsistent
--int indexed array--
-Error: 2 - array_multisort(): Array sizes are inconsistent, %sarray_multisort_variation2.php(%d)
-bool(false)
+Array sizes are inconsistent
--associative array--
bool(true)
--nested arrays--
-Error: 2 - array_multisort(): Array sizes are inconsistent, %sarray_multisort_variation2.php(%d)
-bool(false)
+Array sizes are inconsistent
--uppercase NULL--
-Error: 2 - array_multisort(): Argument #2 is expected to be an array or a sort flag, %sarray_multisort_variation2.php(%d)
-bool(false)
+Argument #2 is expected to be an array or a sort flag
--lowercase null--
-Error: 2 - array_multisort(): Argument #2 is expected to be an array or a sort flag, %sarray_multisort_variation2.php(%d)
-bool(false)
+Argument #2 is expected to be an array or a sort flag
--lowercase true--
-Error: 2 - array_multisort(): Argument #2 is expected to be an array or a sort flag, %sarray_multisort_variation2.php(%d)
-bool(false)
+Argument #2 is expected to be an array or a sort flag
--lowercase false--
-Error: 2 - array_multisort(): Argument #2 is expected to be an array or a sort flag, %sarray_multisort_variation2.php(%d)
-bool(false)
+Argument #2 is expected to be an array or a sort flag
--uppercase TRUE--
-Error: 2 - array_multisort(): Argument #2 is expected to be an array or a sort flag, %sarray_multisort_variation2.php(%d)
-bool(false)
+Argument #2 is expected to be an array or a sort flag
--uppercase FALSE--
-Error: 2 - array_multisort(): Argument #2 is expected to be an array or a sort flag, %sarray_multisort_variation2.php(%d)
-bool(false)
+Argument #2 is expected to be an array or a sort flag
--empty string DQ--
-Error: 2 - array_multisort(): Argument #2 is expected to be an array or a sort flag, %sarray_multisort_variation2.php(%d)
-bool(false)
+Argument #2 is expected to be an array or a sort flag
--empty string SQ--
-Error: 2 - array_multisort(): Argument #2 is expected to be an array or a sort flag, %sarray_multisort_variation2.php(%d)
-bool(false)
+Argument #2 is expected to be an array or a sort flag
--string DQ--
-Error: 2 - array_multisort(): Argument #2 is expected to be an array or a sort flag, %sarray_multisort_variation2.php(%d)
-bool(false)
+Argument #2 is expected to be an array or a sort flag
--string SQ--
-Error: 2 - array_multisort(): Argument #2 is expected to be an array or a sort flag, %sarray_multisort_variation2.php(%d)
-bool(false)
+Argument #2 is expected to be an array or a sort flag
--mixed case string--
-Error: 2 - array_multisort(): Argument #2 is expected to be an array or a sort flag, %sarray_multisort_variation2.php(%d)
-bool(false)
+Argument #2 is expected to be an array or a sort flag
--heredoc--
-Error: 2 - array_multisort(): Argument #2 is expected to be an array or a sort flag, %sarray_multisort_variation2.php(%d)
-bool(false)
+Argument #2 is expected to be an array or a sort flag
--instance of classWithToString--
-Error: 2 - array_multisort(): Argument #2 is expected to be an array or a sort flag, %sarray_multisort_variation2.php(%d)
-bool(false)
+Argument #2 is expected to be an array or a sort flag
--instance of classWithoutToString--
-Error: 2 - array_multisort(): Argument #2 is expected to be an array or a sort flag, %sarray_multisort_variation2.php(%d)
-bool(false)
+Argument #2 is expected to be an array or a sort flag
--undefined var--
-Error: 2 - array_multisort(): Argument #2 is expected to be an array or a sort flag, %sarray_multisort_variation2.php(%d)
-bool(false)
+Argument #2 is expected to be an array or a sort flag
--unset var--
-Error: 2 - array_multisort(): Argument #2 is expected to be an array or a sort flag, %sarray_multisort_variation2.php(%d)
-bool(false)
+Argument #2 is expected to be an array or a sort flag
===DONE===
);
// loop through each element of the array for ar2
-
foreach($inputs as $key =>$value) {
- echo "\n--$key--\n";
- var_dump( array_multisort($ar1, SORT_REGULAR, $value) );
+ echo "\n--$key--\n";
+ try {
+ var_dump( array_multisort($ar1, SORT_REGULAR, $value) );
+ } catch (Error $e) {
+ echo $e->getMessage() . "\n";
+ }
};
?>
===DONE===
---EXPECTF--
+--EXPECT--
*** Testing array_multisort() : usage variation ***
--int 0--
-Error: 2 - array_multisort(): Argument #3 is expected to be an array or sorting flag that has not already been specified, %sarray_multisort_variation3.php(%d)
-bool(false)
+Argument #3 is expected to be an array or sorting flag that has not already been specified
--int 1--
-Error: 2 - array_multisort(): Argument #3 is expected to be an array or sorting flag that has not already been specified, %sarray_multisort_variation3.php(%d)
-bool(false)
+Argument #3 is expected to be an array or sorting flag that has not already been specified
--int 12345--
-Error: 2 - array_multisort(): Argument #3 is an unknown sort flag, %sarray_multisort_variation3.php(%d)
-bool(false)
+Argument #3 is an unknown sort flag
--int -12345--
-Error: 2 - array_multisort(): Argument #3 is an unknown sort flag, %sarray_multisort_variation3.php(%d)
-bool(false)
+Argument #3 is an unknown sort flag
--float 10.5--
-Error: 2 - array_multisort(): Argument #3 is expected to be an array or a sort flag, %sarray_multisort_variation3.php(%d)
-bool(false)
+Argument #3 is expected to be an array or a sort flag
--float -10.5--
-Error: 2 - array_multisort(): Argument #3 is expected to be an array or a sort flag, %sarray_multisort_variation3.php(%d)
-bool(false)
+Argument #3 is expected to be an array or a sort flag
--float 12.3456789000e10--
-Error: 2 - array_multisort(): Argument #3 is expected to be an array or a sort flag, %sarray_multisort_variation3.php(%d)
-bool(false)
+Argument #3 is expected to be an array or a sort flag
--float -12.3456789000e10--
-Error: 2 - array_multisort(): Argument #3 is expected to be an array or a sort flag, %sarray_multisort_variation3.php(%d)
-bool(false)
+Argument #3 is expected to be an array or a sort flag
--float .5--
-Error: 2 - array_multisort(): Argument #3 is expected to be an array or a sort flag, %sarray_multisort_variation3.php(%d)
-bool(false)
+Argument #3 is expected to be an array or a sort flag
--uppercase NULL--
-Error: 2 - array_multisort(): Argument #3 is expected to be an array or a sort flag, %sarray_multisort_variation3.php(%d)
-bool(false)
+Argument #3 is expected to be an array or a sort flag
--lowercase null--
-Error: 2 - array_multisort(): Argument #3 is expected to be an array or a sort flag, %sarray_multisort_variation3.php(%d)
-bool(false)
+Argument #3 is expected to be an array or a sort flag
--lowercase true--
-Error: 2 - array_multisort(): Argument #3 is expected to be an array or a sort flag, %sarray_multisort_variation3.php(%d)
-bool(false)
+Argument #3 is expected to be an array or a sort flag
--lowercase false--
-Error: 2 - array_multisort(): Argument #3 is expected to be an array or a sort flag, %sarray_multisort_variation3.php(%d)
-bool(false)
+Argument #3 is expected to be an array or a sort flag
--uppercase TRUE--
-Error: 2 - array_multisort(): Argument #3 is expected to be an array or a sort flag, %sarray_multisort_variation3.php(%d)
-bool(false)
+Argument #3 is expected to be an array or a sort flag
--uppercase FALSE--
-Error: 2 - array_multisort(): Argument #3 is expected to be an array or a sort flag, %sarray_multisort_variation3.php(%d)
-bool(false)
+Argument #3 is expected to be an array or a sort flag
--empty string DQ--
-Error: 2 - array_multisort(): Argument #3 is expected to be an array or a sort flag, %sarray_multisort_variation3.php(%d)
-bool(false)
+Argument #3 is expected to be an array or a sort flag
--empty string SQ--
-Error: 2 - array_multisort(): Argument #3 is expected to be an array or a sort flag, %sarray_multisort_variation3.php(%d)
-bool(false)
+Argument #3 is expected to be an array or a sort flag
--string DQ--
-Error: 2 - array_multisort(): Argument #3 is expected to be an array or a sort flag, %sarray_multisort_variation3.php(%d)
-bool(false)
+Argument #3 is expected to be an array or a sort flag
--string SQ--
-Error: 2 - array_multisort(): Argument #3 is expected to be an array or a sort flag, %sarray_multisort_variation3.php(%d)
-bool(false)
+Argument #3 is expected to be an array or a sort flag
--mixed case string--
-Error: 2 - array_multisort(): Argument #3 is expected to be an array or a sort flag, %sarray_multisort_variation3.php(%d)
-bool(false)
+Argument #3 is expected to be an array or a sort flag
--heredoc--
-Error: 2 - array_multisort(): Argument #3 is expected to be an array or a sort flag, %sarray_multisort_variation3.php(%d)
-bool(false)
+Argument #3 is expected to be an array or a sort flag
--instance of classWithToString--
-Error: 2 - array_multisort(): Argument #3 is expected to be an array or a sort flag, %sarray_multisort_variation3.php(%d)
-bool(false)
+Argument #3 is expected to be an array or a sort flag
--instance of classWithoutToString--
-Error: 2 - array_multisort(): Argument #3 is expected to be an array or a sort flag, %sarray_multisort_variation3.php(%d)
-bool(false)
+Argument #3 is expected to be an array or a sort flag
--undefined var--
-Error: 2 - array_multisort(): Argument #3 is expected to be an array or a sort flag, %sarray_multisort_variation3.php(%d)
-bool(false)
+Argument #3 is expected to be an array or a sort flag
--unset var--
-Error: 2 - array_multisort(): Argument #3 is expected to be an array or a sort flag, %sarray_multisort_variation3.php(%d)
-bool(false)
+Argument #3 is expected to be an array or a sort flag
===DONE===
}
set_error_handler('error_handle');
$data = [['aa'=> 'bb',], ['aa'=> 'bb',],];
-array_multisort(array_column($data, 'bb'),SORT_DESC, $data); // PHP Warning error
+
+try {
+ array_multisort(array_column($data, 'bb'),SORT_DESC, $data); // PHP Warning error
+} catch (\Error $e) {
+ echo $e->getMessage() . "\n";
+}
?>
--EXPECT--
-array_multisort(): Array sizes are inconsistent
+Array sizes are inconsistent