From 17719a2dc8e3816cef3a7b1a5b1c35ac4796eae7 Mon Sep 17 00:00:00 2001 From: nuno maduro Date: Tue, 23 Jun 2026 10:19:21 +0100 Subject: [PATCH] feat: add `dd` --- ext/standard/basic_functions.stub.php | 2 ++ ext/standard/basic_functions_arginfo.h | 9 ++++++++- ext/standard/basic_functions_decl.h | 8 ++++---- ext/standard/var.c | 9 +++++++++ 4 files changed, 23 insertions(+), 5 deletions(-) diff --git a/ext/standard/basic_functions.stub.php b/ext/standard/basic_functions.stub.php index 7fc31e7d80ca..fc8127c9dbc4 100644 --- a/ext/standard/basic_functions.stub.php +++ b/ext/standard/basic_functions.stub.php @@ -3813,6 +3813,8 @@ function convert_uudecode(string $string): string|false {} function var_dump(mixed $value, mixed ...$values): void {} +function dd(mixed $value, mixed ...$values): never {} + /** @refcount 1 */ function var_export(mixed $value, bool $return = false): ?string {} diff --git a/ext/standard/basic_functions_arginfo.h b/ext/standard/basic_functions_arginfo.h index c5266c5a877c..ccceb0bf05cc 100644 --- a/ext/standard/basic_functions_arginfo.h +++ b/ext/standard/basic_functions_arginfo.h @@ -1,5 +1,5 @@ /* This is a generated file, edit basic_functions.stub.php instead. - * Stub hash: 3b1649a3abb3cfb5cb39d93f30a97765fe862d67 + * Stub hash: 495de4268238b02405c847cc0d5ce602f8de0f68 * Has decl header: yes */ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_set_time_limit, 0, 1, _IS_BOOL, 0) @@ -2146,6 +2146,11 @@ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_var_dump, 0, 1, IS_VOID, 0) ZEND_ARG_VARIADIC_TYPE_INFO(0, values, IS_MIXED, 0) ZEND_END_ARG_INFO() +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_dd, 0, 1, IS_NEVER, 0) + ZEND_ARG_TYPE_INFO(0, value, IS_MIXED, 0) + ZEND_ARG_VARIADIC_TYPE_INFO(0, values, IS_MIXED, 0) +ZEND_END_ARG_INFO() + ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_var_export, 0, 1, IS_STRING, 1) ZEND_ARG_TYPE_INFO(0, value, IS_MIXED, 0) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, return, _IS_BOOL, 0, "false") @@ -2892,6 +2897,7 @@ ZEND_FUNCTION(stream_filter_register); ZEND_FUNCTION(convert_uuencode); ZEND_FUNCTION(convert_uudecode); ZEND_FUNCTION(var_dump); +ZEND_FUNCTION(dd); ZEND_FUNCTION(var_export); ZEND_FUNCTION(debug_zval_dump); ZEND_FUNCTION(serialize); @@ -3516,6 +3522,7 @@ static const zend_function_entry ext_functions[] = { ZEND_RAW_FENTRY("convert_uuencode", zif_convert_uuencode, arginfo_convert_uuencode, ZEND_ACC_COMPILE_TIME_EVAL, NULL, NULL) ZEND_RAW_FENTRY("convert_uudecode", zif_convert_uudecode, arginfo_convert_uudecode, ZEND_ACC_COMPILE_TIME_EVAL, NULL, NULL) ZEND_FE(var_dump, arginfo_var_dump) + ZEND_FE(dd, arginfo_dd) ZEND_FE(var_export, arginfo_var_export) ZEND_FE(debug_zval_dump, arginfo_debug_zval_dump) ZEND_RAW_FENTRY("serialize", zif_serialize, arginfo_serialize, ZEND_ACC_COMPILE_TIME_EVAL, NULL, NULL) diff --git a/ext/standard/basic_functions_decl.h b/ext/standard/basic_functions_decl.h index 630a4b7e656b..5d7ef528f030 100644 --- a/ext/standard/basic_functions_decl.h +++ b/ext/standard/basic_functions_decl.h @@ -1,8 +1,8 @@ /* This is a generated file, edit basic_functions.stub.php instead. - * Stub hash: 3b1649a3abb3cfb5cb39d93f30a97765fe862d67 */ + * Stub hash: 495de4268238b02405c847cc0d5ce602f8de0f68 */ -#ifndef ZEND_BASIC_FUNCTIONS_DECL_3b1649a3abb3cfb5cb39d93f30a97765fe862d67_H -#define ZEND_BASIC_FUNCTIONS_DECL_3b1649a3abb3cfb5cb39d93f30a97765fe862d67_H +#ifndef ZEND_BASIC_FUNCTIONS_DECL_495de4268238b02405c847cc0d5ce602f8de0f68_H +#define ZEND_BASIC_FUNCTIONS_DECL_495de4268238b02405c847cc0d5ce602f8de0f68_H typedef enum zend_enum_SortDirection { ZEND_ENUM_SortDirection_Ascending = 1, @@ -20,4 +20,4 @@ typedef enum zend_enum_RoundingMode { ZEND_ENUM_RoundingMode_PositiveInfinity = 8, } zend_enum_RoundingMode; -#endif /* ZEND_BASIC_FUNCTIONS_DECL_3b1649a3abb3cfb5cb39d93f30a97765fe862d67_H */ +#endif /* ZEND_BASIC_FUNCTIONS_DECL_495de4268238b02405c847cc0d5ce602f8de0f68_H */ diff --git a/ext/standard/var.c b/ext/standard/var.c index 3137a270f661..4049db858758 100644 --- a/ext/standard/var.c +++ b/ext/standard/var.c @@ -255,6 +255,15 @@ PHP_FUNCTION(var_dump) } /* }}} */ +/* {{{ Dumps a string representation of variable to output and ends the script */ +PHP_FUNCTION(dd) +{ + ZEND_FN(var_dump)(INTERNAL_FUNCTION_PARAM_PASSTHRU); + + zend_bailout(); +} +/* }}} */ + static void zval_array_element_dump(zval *zv, zend_ulong index, zend_string *key, int level) /* {{{ */ { if (key == NULL) { /* numeric key */