diff --git a/ext/hash/hash.stub.php b/ext/hash/hash.stub.php index 9efd72361cde7..e0439c67bf23d 100644 --- a/ext/hash/hash.stub.php +++ b/ext/hash/hash.stub.php @@ -45,12 +45,14 @@ function hash_copy(HashContext $context): HashContext {} /** * @return array + * @compile-time-eval * @refcount 1 */ function hash_algos(): array {} /** * @return array + * @compile-time-eval * @refcount 1 */ function hash_hmac_algos(): array {} diff --git a/ext/hash/hash_arginfo.h b/ext/hash/hash_arginfo.h index dca428af029b5..d52a5979cb10e 100644 --- a/ext/hash/hash_arginfo.h +++ b/ext/hash/hash_arginfo.h @@ -1,5 +1,5 @@ /* This is a generated file, edit the .stub.php file instead. - * Stub hash: 7168b9b3d1422d4f8ff9270c5de2f42988a55811 */ + * Stub hash: 8838801d9789d4b77d57b290d993ee37784bbd1f */ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_hash, 0, 2, IS_STRING, 0) ZEND_ARG_TYPE_INFO(0, algo, IS_STRING, 0) @@ -179,8 +179,8 @@ static const zend_function_entry ext_functions[] = { ZEND_FE(hash_update_file, arginfo_hash_update_file) ZEND_FE(hash_final, arginfo_hash_final) ZEND_FE(hash_copy, arginfo_hash_copy) - ZEND_FE(hash_algos, arginfo_hash_algos) - ZEND_FE(hash_hmac_algos, arginfo_hash_hmac_algos) + ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(hash_algos, arginfo_hash_algos) + ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(hash_hmac_algos, arginfo_hash_hmac_algos) ZEND_FE(hash_pbkdf2, arginfo_hash_pbkdf2) ZEND_FE(hash_equals, arginfo_hash_equals) ZEND_FE(hash_hkdf, arginfo_hash_hkdf) diff --git a/ext/standard/basic_functions.stub.php b/ext/standard/basic_functions.stub.php index b2270d66d9e25..effb05ff9f982 100755 --- a/ext/standard/basic_functions.stub.php +++ b/ext/standard/basic_functions.stub.php @@ -1660,6 +1660,9 @@ function array_unshift(array &$array, mixed ...$values): int {} function array_splice(array &$array, int $offset, ?int $length = null, mixed $replacement = []): array {} +/** + * @compile-time-eval + */ function array_slice(array $array, int $offset, ?int $length = null, bool $preserve_keys = false): array {} /** @@ -1708,14 +1711,21 @@ function array_values(array $array): array {} /** * @return array + * @compile-time-eval * @refcount 1 */ function array_count_values(array $array): array {} -/** @refcount 1 */ +/** + * @compile-time-eval + * @refcount 1 + */ function array_column(array $array, int|string|null $column_key, int|string|null $index_key = null): array {} -/** @refcount 1 */ +/** + * @compile-time-eval + * @refcount 1 + */ function array_reverse(array $array, bool $preserve_keys = false): array {} function array_pad(array $array, int $length, mixed $value): array {} @@ -1844,8 +1854,14 @@ function array_multisort(&$array, &...$rest): bool {} /** @return int|string|array */ function array_rand(array $array, int $num = 1): int|string|array {} +/** + * @compile-time-eval + */ function array_sum(array $array): int|float {} +/** + * @compile-time-eval + */ function array_product(array $array): int|float {} function array_reduce(array $array, callable $callback, mixed $initial = null): mixed {} @@ -1866,8 +1882,14 @@ function array_key_exists($key, array $array): bool {} */ function key_exists($key, array $array): bool {} +/** + * @compile-time-eval + */ function array_chunk(array $array, int $length, bool $preserve_keys = false): array {} +/** + * @compile-time-eval + */ function array_combine(array $keys, array $values): array {} /** @compile-time-eval */ @@ -2033,6 +2055,7 @@ function parse_ini_file(string $filename, bool $process_sections = false, int $s /** * @return array|false + * @compile-time-eval * @refcount 1 */ function parse_ini_string(string $ini_string, bool $process_sections = false, int $scanner_mode = INI_SCANNER_NORMAL): array|false {} @@ -2261,8 +2284,14 @@ function bin2hex(string $string): string {} */ function hex2bin(string $string): string|false {} +/** + * @compile-time-eval + */ function strspn(string $string, string $characters, int $offset = 0, ?int $length = null): int {} +/** + * @compile-time-eval + */ function strcspn(string $string, string $characters, int $offset = 0, ?int $length = null): int {} #ifdef HAVE_NL_LANGINFO @@ -2284,7 +2313,10 @@ function chop(string $string, string $characters = " \n\r\t\v\0"): string {} /** @compile-time-eval */ function ltrim(string $string, string $characters = " \n\r\t\v\0"): string {} -/** @refcount 1 */ +/** + * @compile-time-eval + * @refcount 1 + */ function wordwrap(string $string, int $width = 75, string $break = "\n", bool $cut_long_words = false): string {} /** @@ -2302,7 +2334,10 @@ function implode(string|array $separator, ?array $array = null): string {} /** @alias implode */ function join(string|array $separator, ?array $array = null): string {} -/** @refcount 1 */ +/** + * @compile-time-eval + * @refcount 1 + */ function strtok(string $string, ?string $token = null): string|false {} /** @compile-time-eval */ @@ -2323,7 +2358,10 @@ function dirname(string $path, int $levels = 1): string {} */ function pathinfo(string $path, int $flags = PATHINFO_ALL): array|string {} -/** @refcount 1 */ +/** + * @compile-time-eval + * @refcount 1 + */ function stristr(string $haystack, string $needle, bool $before_needle = false): string|false {} /** @@ -2347,7 +2385,10 @@ function strrpos(string $haystack, string $needle, int $offset = 0): int|false { /** @compile-time-eval */ function strripos(string $haystack, string $needle, int $offset = 0): int|false {} -/** @refcount 1 */ +/** + * @compile-time-eval + * @refcount 1 + */ function strrchr(string $haystack, string $needle): string|false {} /** @compile-time-eval */ @@ -2359,16 +2400,25 @@ function str_starts_with(string $haystack, string $needle): bool {} /** @compile-time-eval */ function str_ends_with(string $haystack, string $needle): bool {} -/** @refcount 1 */ +/** + * @compile-time-eval + * @refcount 1 + */ function chunk_split(string $string, int $length = 76, string $separator = "\r\n"): string {} /** @compile-time-eval */ function substr(string $string, int $offset, ?int $length = null): string {} -/** @return string|array */ +/** + * @return string|array + * @compile-time-eval + */ function substr_replace(array|string $string, array|string $replace, array|int $offset, array|int|null $length = null): string|array {} -/** @refcount 1 */ +/** + * @compile-time-eval + * @refcount 1 + */ function quotemeta(string $string): string {} /** @compile-time-eval */ @@ -2392,6 +2442,9 @@ function lcfirst(string $string): string {} */ function ucwords(string $string, string $separators = " \t\r\n\f\v"): string {} +/** + * @compile-time-eval + */ function strtr(string $string, string|array $from, ?string $to = null): string {} /** @@ -2403,14 +2456,26 @@ function strrev(string $string): string {} /** @param float $percent */ function similar_text(string $string1, string $string2, &$percent = null): int {} +/** + * @compile-time-eval + */ function addcslashes(string $string, string $characters): string {} +/** + * @compile-time-eval + */ function addslashes(string $string): string {} -/** @refcount 1 */ +/** + * @compile-time-eval + * @refcount 1 + */ function stripcslashes(string $string): string {} -/** @refcount 1 */ +/** + * @compile-time-eval + * @refcount 1 + */ function stripslashes(string $string): string {} /** @@ -2430,9 +2495,15 @@ function str_ireplace(array|string $search, array|string $replace, string|array /** @refcount 1 */ function hebrev(string $string, int $max_chars_per_line = 0): string {} +/** + * @compile-time-eval + */ function nl2br(string $string, bool $use_xhtml = true): string {} -/** @refcount 1 */ +/** + * @compile-time-eval + * @refcount 1 + */ function strip_tags(string $string, array|string|null $allowed_tags = null): string {} /** @@ -2455,6 +2526,7 @@ function str_repeat(string $string, int $times): string {} /** * @return array|string + * @compile-time-eval * @refcount 1 */ function count_chars(string $string, int $mode = 0): array|string {} @@ -2469,6 +2541,9 @@ function localeconv(): array {} function strnatcasecmp(string $string1, string $string2): int {} +/** + * @compile-time-eval + */ function substr_count(string $haystack, string $needle, int $offset = 0, ?int $length = null): int {} function str_pad(string $string, int $length, string $pad_string = " ", int $pad_type = STR_PAD_RIGHT): string {} @@ -2479,7 +2554,10 @@ function str_pad(string $string, int $length, string $pad_string = " ", int $pad */ function sscanf(string $string, string $format, mixed &...$vars): array|int|null {} -/** @refcount 1 */ +/** + * @compile-time-eval + * @refcount 1 + */ function str_rot13(string $string): string {} /** @refcount 1 */ @@ -2497,18 +2575,26 @@ function str_word_count(string $string, int $format = 0, ?string $characters = n */ function str_split(string $string, int $length = 1): array {} -/** @refcount 1 */ +/** + * @compile-time-eval + * @refcount 1 + */ function strpbrk(string $string, string $characters): string|false {} +/** + * @compile-time-eval + */ function substr_compare(string $haystack, string $needle, int $offset, ?int $length = null, bool $case_insensitive = false): int {} /** + * @compile-time-eval * @refcount 1 * @deprecated */ function utf8_encode(string $string): string {} /** + * @compile-time-eval * @refcount 1 * @deprecated */ @@ -2883,10 +2969,16 @@ function http_build_query(array|object $data, string $numeric_prefix = "", ?stri /* image.c */ -/** @refcount 1 */ +/** + * @compile-time-eval + * @refcount 1 + */ function image_type_to_mime_type(int $image_type): string {} -/** @refcount 1 */ +/** + * @compile-time-eval + * @refcount 1 + */ function image_type_to_extension(int $image_type, bool $include_dot = true): string|false {} /** @@ -3165,6 +3257,9 @@ function password_needs_rehash(string $hash, string|int|null $algo, array $optio function password_verify(#[\SensitiveParameter] string $password, string $hash): bool {} +/** + * @compile-time-eval + */ function password_algos(): array {} /* proc_open.c */ @@ -3193,10 +3288,16 @@ function proc_get_status($process): array {} /* quot_print.c */ -/** @refcount 1 */ +/** + * @compile-time-eval + * @refcount 1 + */ function quoted_printable_decode(string $string): string {} -/** @refcount 1 */ +/** + * @compile-time-eval + * @refcount 1 + */ function quoted_printable_encode(string $string): string {} /* soundex.c */ @@ -3527,6 +3628,7 @@ function uniqid(string $prefix = "", bool $more_entropy = false): string {} /** * @return int|string|array|null|false + * @compile-time-eval * @refcount 1 */ function parse_url(string $url, int $component = -1): int|string|array|null|false {} @@ -3592,10 +3694,16 @@ function stream_filter_register(string $filter_name, string $class): bool {} /* uuencode.c */ -/** @refcount 1 */ +/** + * @compile-time-eval + * @refcount 1 + */ function convert_uuencode(string $string): string {} -/** @refcount 1 */ +/** + * @compile-time-eval + * @refcount 1 + */ function convert_uudecode(string $string): string|false {} /* var.c */ diff --git a/ext/standard/basic_functions_arginfo.h b/ext/standard/basic_functions_arginfo.h index f43ca8f98fc16..5612ee21867e8 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 the .stub.php file instead. - * Stub hash: 0d2bffd95e986b632f5fd1afbf8f6464e6bc8759 */ + * Stub hash: 9cc9c0954bd7032d363ce9a531be621274b9a7e2 */ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_set_time_limit, 0, 1, _IS_BOOL, 0) ZEND_ARG_TYPE_INFO(0, seconds, IS_LONG, 0) @@ -2876,7 +2876,7 @@ static const zend_function_entry ext_functions[] = { ZEND_FE(array_shift, arginfo_array_shift) ZEND_FE(array_unshift, arginfo_array_unshift) ZEND_FE(array_splice, arginfo_array_splice) - ZEND_FE(array_slice, arginfo_array_slice) + ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(array_slice, arginfo_array_slice) ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(array_merge, arginfo_array_merge) ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(array_merge_recursive, arginfo_array_merge_recursive) ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(array_replace, arginfo_array_replace) @@ -2885,9 +2885,9 @@ static const zend_function_entry ext_functions[] = { ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(array_key_first, arginfo_array_key_first) ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(array_key_last, arginfo_array_key_last) ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(array_values, arginfo_array_values) - ZEND_FE(array_count_values, arginfo_array_count_values) - ZEND_FE(array_column, arginfo_array_column) - ZEND_FE(array_reverse, arginfo_array_reverse) + ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(array_count_values, arginfo_array_count_values) + ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(array_column, arginfo_array_column) + ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(array_reverse, arginfo_array_reverse) ZEND_FE(array_pad, arginfo_array_pad) ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(array_flip, arginfo_array_flip) ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(array_change_key_case, arginfo_array_change_key_case) @@ -2910,15 +2910,15 @@ static const zend_function_entry ext_functions[] = { ZEND_FE(array_udiff_uassoc, arginfo_array_udiff_uassoc) ZEND_FE(array_multisort, arginfo_array_multisort) ZEND_FE(array_rand, arginfo_array_rand) - ZEND_FE(array_sum, arginfo_array_sum) - ZEND_FE(array_product, arginfo_array_product) + ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(array_sum, arginfo_array_sum) + ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(array_product, arginfo_array_product) ZEND_FE(array_reduce, arginfo_array_reduce) ZEND_FE(array_filter, arginfo_array_filter) ZEND_FE(array_map, arginfo_array_map) ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(array_key_exists, arginfo_array_key_exists) ZEND_FALIAS(key_exists, array_key_exists, arginfo_key_exists) - ZEND_FE(array_chunk, arginfo_array_chunk) - ZEND_FE(array_combine, arginfo_array_combine) + ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(array_chunk, arginfo_array_chunk) + ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(array_combine, arginfo_array_combine) ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(array_is_list, arginfo_array_is_list) ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(base64_encode, arginfo_base64_encode) ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(base64_decode, arginfo_base64_decode) @@ -2982,7 +2982,7 @@ static const zend_function_entry ext_functions[] = { ZEND_FE(is_uploaded_file, arginfo_is_uploaded_file) ZEND_FE(move_uploaded_file, arginfo_move_uploaded_file) ZEND_FE(parse_ini_file, arginfo_parse_ini_file) - ZEND_FE(parse_ini_string, arginfo_parse_ini_string) + ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(parse_ini_string, arginfo_parse_ini_string) #if ZEND_DEBUG ZEND_FE(config_get_hash, arginfo_config_get_hash) #endif @@ -3064,8 +3064,8 @@ static const zend_function_entry ext_functions[] = { ZEND_FE(assert_options, arginfo_assert_options) ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(bin2hex, arginfo_bin2hex) ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(hex2bin, arginfo_hex2bin) - ZEND_FE(strspn, arginfo_strspn) - ZEND_FE(strcspn, arginfo_strcspn) + ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(strspn, arginfo_strspn) + ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(strcspn, arginfo_strcspn) #if defined(HAVE_NL_LANGINFO) ZEND_FE(nl_langinfo, arginfo_nl_langinfo) #endif @@ -3074,65 +3074,65 @@ static const zend_function_entry ext_functions[] = { ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(rtrim, arginfo_rtrim) ZEND_FALIAS(chop, rtrim, arginfo_chop) ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(ltrim, arginfo_ltrim) - ZEND_FE(wordwrap, arginfo_wordwrap) + ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(wordwrap, arginfo_wordwrap) ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(explode, arginfo_explode) ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(implode, arginfo_implode) ZEND_FALIAS(join, implode, arginfo_join) - ZEND_FE(strtok, arginfo_strtok) + ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(strtok, arginfo_strtok) ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(strtoupper, arginfo_strtoupper) ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(strtolower, arginfo_strtolower) ZEND_FE(basename, arginfo_basename) ZEND_FE(dirname, arginfo_dirname) ZEND_FE(pathinfo, arginfo_pathinfo) - ZEND_FE(stristr, arginfo_stristr) + ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(stristr, arginfo_stristr) ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(strstr, arginfo_strstr) ZEND_FALIAS(strchr, strstr, arginfo_strchr) ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(strpos, arginfo_strpos) ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(stripos, arginfo_stripos) ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(strrpos, arginfo_strrpos) ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(strripos, arginfo_strripos) - ZEND_FE(strrchr, arginfo_strrchr) + ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(strrchr, arginfo_strrchr) ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(str_contains, arginfo_str_contains) ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(str_starts_with, arginfo_str_starts_with) ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(str_ends_with, arginfo_str_ends_with) - ZEND_FE(chunk_split, arginfo_chunk_split) + ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(chunk_split, arginfo_chunk_split) ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(substr, arginfo_substr) - ZEND_FE(substr_replace, arginfo_substr_replace) - ZEND_FE(quotemeta, arginfo_quotemeta) + ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(substr_replace, arginfo_substr_replace) + ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(quotemeta, arginfo_quotemeta) ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(ord, arginfo_ord) ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(chr, arginfo_chr) ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(ucfirst, arginfo_ucfirst) ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(lcfirst, arginfo_lcfirst) ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(ucwords, arginfo_ucwords) - ZEND_FE(strtr, arginfo_strtr) + ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(strtr, arginfo_strtr) ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(strrev, arginfo_strrev) ZEND_FE(similar_text, arginfo_similar_text) - ZEND_FE(addcslashes, arginfo_addcslashes) - ZEND_FE(addslashes, arginfo_addslashes) - ZEND_FE(stripcslashes, arginfo_stripcslashes) - ZEND_FE(stripslashes, arginfo_stripslashes) + ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(addcslashes, arginfo_addcslashes) + ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(addslashes, arginfo_addslashes) + ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(stripcslashes, arginfo_stripcslashes) + ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(stripslashes, arginfo_stripslashes) ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(str_replace, arginfo_str_replace) ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(str_ireplace, arginfo_str_ireplace) ZEND_FE(hebrev, arginfo_hebrev) - ZEND_FE(nl2br, arginfo_nl2br) - ZEND_FE(strip_tags, arginfo_strip_tags) + ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(nl2br, arginfo_nl2br) + ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(strip_tags, arginfo_strip_tags) ZEND_FE(setlocale, arginfo_setlocale) ZEND_FE(parse_str, arginfo_parse_str) ZEND_FE(str_getcsv, arginfo_str_getcsv) ZEND_FE(str_repeat, arginfo_str_repeat) - ZEND_FE(count_chars, arginfo_count_chars) + ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(count_chars, arginfo_count_chars) ZEND_FE(strnatcmp, arginfo_strnatcmp) ZEND_FE(localeconv, arginfo_localeconv) ZEND_FE(strnatcasecmp, arginfo_strnatcasecmp) - ZEND_FE(substr_count, arginfo_substr_count) + ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(substr_count, arginfo_substr_count) ZEND_FE(str_pad, arginfo_str_pad) ZEND_FE(sscanf, arginfo_sscanf) - ZEND_FE(str_rot13, arginfo_str_rot13) + ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(str_rot13, arginfo_str_rot13) ZEND_FE(str_shuffle, arginfo_str_shuffle) ZEND_FE(str_word_count, arginfo_str_word_count) ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(str_split, arginfo_str_split) - ZEND_FE(strpbrk, arginfo_strpbrk) - ZEND_FE(substr_compare, arginfo_substr_compare) + ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(strpbrk, arginfo_strpbrk) + ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(substr_compare, arginfo_substr_compare) ZEND_DEP_FE(utf8_encode, arginfo_utf8_encode) ZEND_DEP_FE(utf8_decode, arginfo_utf8_decode) ZEND_FE(opendir, arginfo_opendir) @@ -3245,8 +3245,8 @@ static const zend_function_entry ext_functions[] = { ZEND_FE(fsockopen, arginfo_fsockopen) ZEND_FE(pfsockopen, arginfo_pfsockopen) ZEND_FE(http_build_query, arginfo_http_build_query) - ZEND_FE(image_type_to_mime_type, arginfo_image_type_to_mime_type) - ZEND_FE(image_type_to_extension, arginfo_image_type_to_extension) + ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(image_type_to_mime_type, arginfo_image_type_to_mime_type) + ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(image_type_to_extension, arginfo_image_type_to_extension) ZEND_FE(getimagesize, arginfo_getimagesize) ZEND_FE(getimagesizefromstring, arginfo_getimagesizefromstring) ZEND_FE(phpinfo, arginfo_phpinfo) @@ -3329,7 +3329,7 @@ static const zend_function_entry ext_functions[] = { ZEND_FE(password_hash, arginfo_password_hash) ZEND_FE(password_needs_rehash, arginfo_password_needs_rehash) ZEND_FE(password_verify, arginfo_password_verify) - ZEND_FE(password_algos, arginfo_password_algos) + ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(password_algos, arginfo_password_algos) #if defined(PHP_CAN_SUPPORT_PROC_OPEN) ZEND_FE(proc_open, arginfo_proc_open) #endif @@ -3342,8 +3342,8 @@ static const zend_function_entry ext_functions[] = { #if defined(PHP_CAN_SUPPORT_PROC_OPEN) ZEND_FE(proc_get_status, arginfo_proc_get_status) #endif - ZEND_FE(quoted_printable_decode, arginfo_quoted_printable_decode) - ZEND_FE(quoted_printable_encode, arginfo_quoted_printable_encode) + ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(quoted_printable_decode, arginfo_quoted_printable_decode) + ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(quoted_printable_encode, arginfo_quoted_printable_encode) ZEND_FE(soundex, arginfo_soundex) ZEND_FE(stream_select, arginfo_stream_select) ZEND_FE(stream_context_create, arginfo_stream_context_create) @@ -3422,7 +3422,7 @@ static const zend_function_entry ext_functions[] = { #if defined(HAVE_GETTIMEOFDAY) ZEND_FE(uniqid, arginfo_uniqid) #endif - ZEND_FE(parse_url, arginfo_parse_url) + ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(parse_url, arginfo_parse_url) ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(urlencode, arginfo_urlencode) ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(urldecode, arginfo_urldecode) ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(rawurlencode, arginfo_rawurlencode) @@ -3434,8 +3434,8 @@ static const zend_function_entry ext_functions[] = { ZEND_FE(stream_bucket_new, arginfo_stream_bucket_new) ZEND_FE(stream_get_filters, arginfo_stream_get_filters) ZEND_FE(stream_filter_register, arginfo_stream_filter_register) - ZEND_FE(convert_uuencode, arginfo_convert_uuencode) - ZEND_FE(convert_uudecode, arginfo_convert_uudecode) + ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(convert_uuencode, arginfo_convert_uuencode) + ZEND_SUPPORTS_COMPILE_TIME_EVAL_FE(convert_uudecode, arginfo_convert_uudecode) ZEND_FE(var_dump, arginfo_var_dump) ZEND_FE(var_export, arginfo_var_export) ZEND_FE(debug_zval_dump, arginfo_debug_zval_dump) diff --git a/ext/zend_test/tests/observer_basic_01.phpt b/ext/zend_test/tests/observer_basic_01.phpt index b208ae2341e85..bdbaa1dd10259 100644 --- a/ext/zend_test/tests/observer_basic_01.phpt +++ b/ext/zend_test/tests/observer_basic_01.phpt @@ -10,7 +10,7 @@ zend_test.observer.observe_all=1 function bar() { echo 'Bar' . PHP_EOL; - var_dump(array_sum([1,2,3])); + var_dump(array_reduce([1, 2, 3], fn ($a, $b) => $a + $b)); } function foo() @@ -34,9 +34,16 @@ Foo Bar - - - + + + + <{closure}> + + <{closure}> + + <{closure}> + + int(6) @@ -47,8 +54,14 @@ int(6) Foo Bar - - + + <{closure}> + + <{closure}> + + <{closure}> + + int(6) @@ -58,8 +71,14 @@ int(6) Foo Bar - - + + <{closure}> + + <{closure}> + + <{closure}> + + int(6) diff --git a/ext/zend_test/tests/observer_basic_02.phpt b/ext/zend_test/tests/observer_basic_02.phpt index ac61a8b18e723..3581c7199d653 100644 --- a/ext/zend_test/tests/observer_basic_02.phpt +++ b/ext/zend_test/tests/observer_basic_02.phpt @@ -2,6 +2,12 @@ Observer: Basic observability of userland methods --EXTENSIONS-- zend_test +--SKIPIF-- + --INI-- zend_test.observer.enabled=1 zend_test.observer.observe_all=1 @@ -12,7 +18,7 @@ class TestClass private function bar() { echo 'Bar' . PHP_EOL; - var_dump(array_sum([1,2,3])); + var_dump(array_reduce([1, 2, 3], fn ($a, $b) => $a + $b)); } public function foo() @@ -38,9 +44,16 @@ Foo Bar - - - + + + + + + + + + + int(6) @@ -51,8 +64,14 @@ int(6) Foo Bar - - + + + + + + + + int(6) @@ -62,8 +81,14 @@ int(6) Foo Bar - - + + + + + + + + int(6) diff --git a/ext/zend_test/tests/observer_closure_01.phpt b/ext/zend_test/tests/observer_closure_01.phpt index 2778d277225b1..aefed5bd4563a 100644 --- a/ext/zend_test/tests/observer_closure_01.phpt +++ b/ext/zend_test/tests/observer_closure_01.phpt @@ -8,7 +8,7 @@ zend_test.observer.observe_all=1 --FILE-- $a + $b)); }; $foo = function($bar) { @@ -30,9 +30,14 @@ echo 'DONE' . PHP_EOL; Answer <{closure}> - - - + + + + <{closure}> + + <{closure}> + + int(42) @@ -42,8 +47,12 @@ int(42) <{closure}> Answer <{closure}> - - + + <{closure}> + + <{closure}> + + int(42) @@ -52,8 +61,12 @@ int(42) <{closure}> Answer <{closure}> - - + + <{closure}> + + <{closure}> + + int(42)