]> granicus.if.org Git - php/commitdiff
Add stubs for various standard functions
authorMáté Kocsis <kocsismate@woohoolabs.com>
Wed, 23 Oct 2019 12:46:59 +0000 (14:46 +0200)
committerNikita Popov <nikita.ppv@gmail.com>
Wed, 30 Oct 2019 09:34:06 +0000 (10:34 +0100)
Closes GH-4851.

ext/standard/basic_functions.c
ext/standard/basic_functions.stub.php
ext/standard/basic_functions_arginfo.h
sapi/cli/tests/004.phpt

index 8cc57e261e2bb61053b8a2a3e223828f17cdb91b..fc7f4f115fddc5b0c4448b32e6b6c163fb5e37d4 100755 (executable)
@@ -717,378 +717,6 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_getimagesize, 0, 0, 1)
        ZEND_ARG_INFO(1, info) /* ARRAY_INFO(1, info, 1) */
 ZEND_END_ARG_INFO()
 /* }}} */
-/* {{{ info.c */
-ZEND_BEGIN_ARG_INFO_EX(arginfo_phpinfo, 0, 0, 0)
-       ZEND_ARG_INFO(0, what)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_phpversion, 0, 0, 0)
-       ZEND_ARG_INFO(0, extension)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_phpcredits, 0, 0, 0)
-       ZEND_ARG_INFO(0, flag)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_php_sapi_name, 0)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_php_uname, 0, 0, 0)
-       ZEND_ARG_INFO(0, mode)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_php_ini_scanned_files, 0)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_php_ini_loaded_file, 0)
-ZEND_END_ARG_INFO()
-/* }}} */
-/* {{{ iptc.c */
-ZEND_BEGIN_ARG_INFO_EX(arginfo_iptcembed, 0, 0, 2)
-       ZEND_ARG_INFO(0, iptcdata)
-       ZEND_ARG_INFO(0, jpeg_file_name)
-       ZEND_ARG_INFO(0, spool)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_iptcparse, 0)
-       ZEND_ARG_INFO(0, iptcdata)
-ZEND_END_ARG_INFO()
-/* }}} */
-/* {{{ levenshtein.c */
-ZEND_BEGIN_ARG_INFO_EX(arginfo_levenshtein, 0, 0, 2)
-       ZEND_ARG_INFO(0, str1)
-       ZEND_ARG_INFO(0, str2)
-       ZEND_ARG_INFO(0, cost_ins)
-       ZEND_ARG_INFO(0, cost_rep)
-       ZEND_ARG_INFO(0, cost_del)
-ZEND_END_ARG_INFO()
-/* }}} */
-/* {{{ link.c */
-#if defined(HAVE_SYMLINK) || defined(PHP_WIN32)
-ZEND_BEGIN_ARG_INFO(arginfo_readlink, 0)
-       ZEND_ARG_INFO(0, filename)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_linkinfo, 0)
-       ZEND_ARG_INFO(0, filename)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_symlink, 0)
-       ZEND_ARG_INFO(0, target)
-       ZEND_ARG_INFO(0, link)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_link, 0)
-       ZEND_ARG_INFO(0, target)
-       ZEND_ARG_INFO(0, link)
-ZEND_END_ARG_INFO()
-#endif
-/* }}} */
-/* {{{ mail.c */
-ZEND_BEGIN_ARG_INFO(arginfo_ezmlm_hash, 0)
-       ZEND_ARG_INFO(0, addr)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_mail, 0, 0, 3)
-       ZEND_ARG_INFO(0, to)
-       ZEND_ARG_INFO(0, subject)
-       ZEND_ARG_INFO(0, message)
-       ZEND_ARG_INFO(0, additional_headers)
-       ZEND_ARG_INFO(0, additional_parameters)
-ZEND_END_ARG_INFO()
-/* }}} */
-/* {{{ math.c */
-ZEND_BEGIN_ARG_INFO(arginfo_abs, 0)
-       ZEND_ARG_INFO(0, number)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_ceil, 0)
-       ZEND_ARG_INFO(0, number)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_floor, 0)
-       ZEND_ARG_INFO(0, number)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_round, 0, 0, 1)
-       ZEND_ARG_INFO(0, number)
-       ZEND_ARG_INFO(0, precision)
-       ZEND_ARG_INFO(0, mode)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO(arginfo_sin, IS_DOUBLE, 0)
-       ZEND_ARG_INFO(0, number)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO(arginfo_cos, IS_DOUBLE, 0)
-       ZEND_ARG_INFO(0, number)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO(arginfo_tan, IS_DOUBLE, 0)
-       ZEND_ARG_INFO(0, number)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO(arginfo_asin, IS_DOUBLE, 0)
-       ZEND_ARG_INFO(0, number)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO(arginfo_acos, IS_DOUBLE, 0)
-       ZEND_ARG_INFO(0, number)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO(arginfo_atan, IS_DOUBLE, 0)
-       ZEND_ARG_INFO(0, number)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO(arginfo_atan2, IS_DOUBLE, 0)
-       ZEND_ARG_INFO(0, y)
-       ZEND_ARG_INFO(0, x)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO(arginfo_sinh, IS_DOUBLE, 0)
-       ZEND_ARG_INFO(0, number)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO(arginfo_cosh, IS_DOUBLE, 0)
-       ZEND_ARG_INFO(0, number)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO(arginfo_tanh, IS_DOUBLE, 0)
-       ZEND_ARG_INFO(0, number)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO(arginfo_asinh, IS_DOUBLE, 0)
-       ZEND_ARG_INFO(0, number)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO(arginfo_acosh, IS_DOUBLE, 0)
-       ZEND_ARG_INFO(0, number)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO(arginfo_atanh, IS_DOUBLE, 0)
-       ZEND_ARG_INFO(0, number)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO(arginfo_pi, IS_DOUBLE, 0)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO(arginfo_is_finite, _IS_BOOL, 0)
-       ZEND_ARG_INFO(0, val)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO(arginfo_is_infinite, _IS_BOOL, 0)
-       ZEND_ARG_INFO(0, val)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO(arginfo_is_nan, _IS_BOOL, 0)
-       ZEND_ARG_INFO(0, val)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_pow, 0)
-       ZEND_ARG_INFO(0, base)
-       ZEND_ARG_INFO(0, exponent)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_exp, 0)
-       ZEND_ARG_INFO(0, number)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_expm1, 0)
-       ZEND_ARG_INFO(0, number)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_log1p, 0)
-       ZEND_ARG_INFO(0, number)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_log, 0, 0, 1)
-       ZEND_ARG_INFO(0, number)
-       ZEND_ARG_INFO(0, base)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_log10, 0)
-       ZEND_ARG_INFO(0, number)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_sqrt, 0)
-       ZEND_ARG_INFO(0, number)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_hypot, 0)
-       ZEND_ARG_INFO(0, num1)
-       ZEND_ARG_INFO(0, num2)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_deg2rad, 0)
-       ZEND_ARG_INFO(0, number)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_rad2deg, 0)
-       ZEND_ARG_INFO(0, number)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_bindec, 0)
-       ZEND_ARG_INFO(0, binary_number)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_hexdec, 0)
-       ZEND_ARG_INFO(0, hexadecimal_number)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_octdec, 0)
-       ZEND_ARG_INFO(0, octal_number)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_decbin, 0)
-       ZEND_ARG_INFO(0, decimal_number)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_decoct, 0)
-       ZEND_ARG_INFO(0, decimal_number)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_dechex, 0)
-       ZEND_ARG_INFO(0, decimal_number)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_base_convert, 0)
-       ZEND_ARG_INFO(0, number)
-       ZEND_ARG_INFO(0, frombase)
-       ZEND_ARG_INFO(0, tobase)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_number_format, 0, 0, 1)
-       ZEND_ARG_INFO(0, number)
-       ZEND_ARG_INFO(0, num_decimal_places)
-       ZEND_ARG_INFO(0, dec_separator)
-       ZEND_ARG_INFO(0, thousands_separator)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_fmod, 0)
-       ZEND_ARG_INFO(0, x)
-       ZEND_ARG_INFO(0, y)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_fdiv, 0)
-       ZEND_ARG_INFO(0, dividend)
-       ZEND_ARG_INFO(0, divisor)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_intdiv, 0)
-       ZEND_ARG_INFO(0, dividend)
-       ZEND_ARG_INFO(0, divisor)
-ZEND_END_ARG_INFO()
-/* }}} */
-
-/* {{{ microtime.c */
-#ifdef HAVE_GETTIMEOFDAY
-ZEND_BEGIN_ARG_INFO_EX(arginfo_microtime, 0, 0, 0)
-       ZEND_ARG_INFO(0, get_as_float)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_gettimeofday, 0, 0, 0)
-       ZEND_ARG_INFO(0, get_as_float)
-ZEND_END_ARG_INFO()
-#endif
-
-#ifdef HAVE_GETRUSAGE
-ZEND_BEGIN_ARG_INFO_EX(arginfo_getrusage, 0, 0, 0)
-       ZEND_ARG_INFO(0, who)
-ZEND_END_ARG_INFO()
-#endif
-/* }}} */
-/* {{{ pack.c */
-ZEND_BEGIN_ARG_INFO_EX(arginfo_pack, 0, 0, 1)
-       ZEND_ARG_INFO(0, format)
-       ZEND_ARG_VARIADIC_INFO(0, args)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_unpack, 0, 0, 2)
-       ZEND_ARG_INFO(0, format)
-       ZEND_ARG_INFO(0, input)
-       ZEND_ARG_INFO(0, offset)
-ZEND_END_ARG_INFO()
-/* }}} */
-/* {{{ password.c */
-ZEND_BEGIN_ARG_INFO_EX(arginfo_password_hash, 0, 0, 2)
-       ZEND_ARG_INFO(0, password)
-       ZEND_ARG_INFO(0, algo)
-       ZEND_ARG_INFO(0, options)
-ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_INFO_EX(arginfo_password_get_info, 0, 0, 1)
-       ZEND_ARG_INFO(0, hash)
-ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_INFO_EX(arginfo_password_needs_rehash, 0, 0, 2)
-       ZEND_ARG_INFO(0, hash)
-       ZEND_ARG_INFO(0, algo)
-       ZEND_ARG_INFO(0, options)
-ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_INFO_EX(arginfo_password_verify, 0, 0, 2)
-       ZEND_ARG_INFO(0, password)
-       ZEND_ARG_INFO(0, hash)
-ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_INFO(arginfo_password_algos, 0)
-ZEND_END_ARG_INFO();
-/* }}} */
-/* {{{ proc_open.c */
-#ifdef PHP_CAN_SUPPORT_PROC_OPEN
-ZEND_BEGIN_ARG_INFO_EX(arginfo_proc_terminate, 0, 0, 1)
-       ZEND_ARG_INFO(0, process)
-       ZEND_ARG_INFO(0, signal)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_proc_close, 0)
-       ZEND_ARG_INFO(0, process)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_proc_get_status, 0)
-       ZEND_ARG_INFO(0, process)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_proc_open, 0, 0, 3)
-       ZEND_ARG_INFO(0, command)
-       ZEND_ARG_INFO(0, descriptorspec) /* ARRAY_INFO(0, descriptorspec, 1) */
-       ZEND_ARG_INFO(1, pipes) /* ARRAY_INFO(1, pipes, 1) */
-       ZEND_ARG_INFO(0, cwd)
-       ZEND_ARG_INFO(0, env) /* ARRAY_INFO(0, env, 1) */
-       ZEND_ARG_INFO(0, other_options) /* ARRAY_INFO(0, other_options, 1) */
-ZEND_END_ARG_INFO()
-#endif
-/* }}} */
-/* {{{ quot_print.c */
-ZEND_BEGIN_ARG_INFO(arginfo_quoted_printable_decode, 0)
-       ZEND_ARG_INFO(0, str)
-ZEND_END_ARG_INFO()
-/* }}} */
-/* {{{ quot_print.c */
-ZEND_BEGIN_ARG_INFO(arginfo_quoted_printable_encode, 0)
-       ZEND_ARG_INFO(0, str)
-ZEND_END_ARG_INFO()
-/* }}} */
-/* {{{ mt_rand.c */
-ZEND_BEGIN_ARG_INFO_EX(arginfo_mt_srand, 0, 0, 0)
-       ZEND_ARG_INFO(0, seed)
-       ZEND_ARG_INFO(0, mode)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_mt_rand, 0, 0, 0)
-       ZEND_ARG_INFO(0, min)
-       ZEND_ARG_INFO(0, max)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_mt_getrandmax, 0)
-ZEND_END_ARG_INFO()
-/* }}} */
-/* {{{ random.c */
-ZEND_BEGIN_ARG_INFO_EX(arginfo_random_bytes, 0, 0, 1)
-       ZEND_ARG_INFO(0, length)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_random_int, 0, 0, 2)
-       ZEND_ARG_INFO(0, min)
-       ZEND_ARG_INFO(0, max)
-ZEND_END_ARG_INFO()
-/* }}} */
 /* {{{ soundex.c */
 ZEND_BEGIN_ARG_INFO(arginfo_soundex, 0)
        ZEND_ARG_INFO(0, str)
index ed2397b7c150487bb17d8a2818c507584383ab07..8322a63fc032e7afe853640e88a49976ba825105 100755 (executable)
@@ -742,3 +742,224 @@ function diskfreespace(string $directory) {}
 function realpath_cache_get(): array {}
 
 function realpath_cache_size(): int {}
+
+/* info.c */
+
+function phpinfo(int $what = INFO_ALL): bool {}
+
+/** @return string|false */
+function phpversion(string $extension = UNKNOWN) {}
+
+function phpcredits(int $flag = CREDITS_ALL): bool {}
+
+/** @return string|false */
+function php_sapi_name() {}
+
+function php_uname(string $mode = "a"): string {}
+
+/** @return string|false */
+function php_ini_scanned_files() {}
+
+/** @return string|false */
+function php_ini_loaded_file() {}
+
+/* iptc.c */
+
+/** @return string|bool */
+function iptcembed(string $iptcdata, string $jpeg_file_name, int $spool = 0) {}
+
+/** @return array|false */
+function iptcparse(string $iptcblock) {}
+
+/* levenshtein.c */
+
+function levenshtein(string $str1, string $str2, $cost_ins = UNKNOWN, int $cost_rep = UNKNOWN, int $cost_del = UNKNOWN): int {}
+
+/* link.c */
+
+#if defined(HAVE_SYMLINK) || defined(PHP_WIN32)
+/** @return string|false */
+function readlink(string $path) {}
+
+/** @return int|false */
+function linkinfo(string $path) {}
+
+function symlink(string $target, string $link): bool {}
+
+function link(string $target, string $link): bool {}
+#endif
+
+/* mail.c */
+
+function ezmlm_hash(string $str): int {}
+
+/** @param string|array $additional_headers */
+function mail(string $to, string $subject, string $message, $additional_headers = UNKNOWN, string $additional_parameters = ""): bool {}
+
+/* math.c */
+
+/**
+ * @param int|float $number
+ * @return int|float
+ */
+function abs($number) {}
+
+function ceil(float $number): float {}
+
+function floor(float $number): float {}
+
+function round($number, int $precision = 0, int $mode = PHP_ROUND_HALF_UP): float {}
+
+function sin(float $number): float {}
+
+function cos(float $number): float {}
+
+function tan(float $number): float {}
+
+function asin(float $number): float {}
+
+function acos(float $number): float {}
+
+function atan(float $number): float {}
+
+function atanh(float $number): float {}
+
+function atan2(float $y, float $x): float {}
+
+function sinh(float $number): float {}
+
+function cosh(float $number): float {}
+
+function tanh(float $number): float {}
+
+function asinh(float $number): float {}
+
+function acosh(float $number): float {}
+
+function expm1(float $number): float {}
+
+function log1p(float $number): float {}
+
+function pi(): float {}
+
+function is_finite(float $number): bool {}
+
+function is_nan(float $number): bool {}
+
+function intdiv(int $dividend, int $divisor): int {}
+
+function is_infinite(float $number): bool {}
+
+/** @return mixed */
+function pow($base, $exp) {}
+
+function exp(float $number): float {}
+
+/** @return float|false */
+function log(float $number, float $base = M_E) {}
+
+function log10(float $number): float {}
+
+function sqrt(float $number): float {}
+
+function hypot(float $x, float $y): float {}
+
+function deg2rad(float $number): float {}
+
+function rad2deg(float $number): float {}
+
+/** @return int|float */
+function bindec(string $binary_string) {}
+
+/** @return int|float */
+function hexdec(string $hex_string) {}
+
+/** @return int|float */
+function octdec(string $octal_string) {}
+
+function decbin($number): string {}
+
+function decoct($number): string {}
+
+function dechex($number): string {}
+
+function base_convert($number, int $frombase, int $tobase): string {}
+
+function number_format(float $number, int $decimals = 0, ?string $decimal_point = "." , ?string $thousands_separator = ","): string {}
+
+function fmod(float $x, float $y): float {}
+
+function fdiv(float $dividend, float $divisor): float {}
+
+/* microtime.c */
+
+#ifdef HAVE_GETTIMEOFDAY
+/** @return string|float */
+function microtime(bool $get_as_float = false) {}
+
+/** @return array|float */
+function gettimeofday(bool $return_float = false) {}
+#endif
+
+#ifdef HAVE_GETRUSAGE
+/** @return array|false */
+function getrusage(int $who = 0) {}
+#endif
+
+/* pack.c */
+
+/** @return string|false */
+function pack(string $format, ...$args) {}
+
+/** @return array|false */
+function unpack(string $format, string $data, int $offset = 0) {}
+
+/* password.c */
+
+function password_get_info(string $hash): ?array {}
+
+/** @return string|false */
+function password_hash(string $password, $algo, array $options = []) {}
+
+function password_needs_rehash(string $hash, $algo, array $options = []): bool {}
+
+function password_verify(string $password, string $hash): bool {}
+
+function password_algos(): array {}
+
+/* proc_open.c */
+
+#ifdef PHP_CAN_SUPPORT_PROC_OPEN
+/** @return resource|false */
+function proc_open($cmd, array $descriptorspec, &$pipes, ?string $cwd = null, ?array $env = null, ?array $other_options = null) {}
+
+/** @param resource $process */
+function proc_close($process): int {}
+
+/** @param resource $process */
+function proc_terminate($process, int $signal = SIGTERM): bool {}
+
+/** @param resource $process */
+function proc_get_status($process): array {}
+#endif
+
+/* quot_print.c */
+
+function quoted_printable_decode(string $str): string {}
+
+function quoted_printable_encode(string $str): string {}
+
+/* mt_rand.c */
+
+function mt_srand(int $seed = 0, int $mode = MT_RAND_MT19937): void {}
+
+/** @return int|false */
+function mt_rand(int $min = 0, int $max = PHP_INT_MAX) {}
+
+function mt_getrandmax(): int {}
+
+/* random.c */
+
+function random_bytes(int $length): string {}
+
+function random_int(int $min, int $max): int {}
index 1af45c540c20c9711ce155e99aca8ed258394ef9..6f16c42aea51e835fd5a7d09a0ceabe1afeff653 100755 (executable)
@@ -949,3 +949,310 @@ ZEND_END_ARG_INFO()
 #define arginfo_realpath_cache_get arginfo_ob_list_handlers
 
 #define arginfo_realpath_cache_size arginfo_ob_get_level
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_phpinfo, 0, 0, _IS_BOOL, 0)
+       ZEND_ARG_TYPE_INFO(0, what, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_phpversion, 0, 0, 0)
+       ZEND_ARG_TYPE_INFO(0, extension, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_phpcredits, 0, 0, _IS_BOOL, 0)
+       ZEND_ARG_TYPE_INFO(0, flag, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_php_sapi_name arginfo_ob_get_flush
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_php_uname, 0, 0, IS_STRING, 0)
+       ZEND_ARG_TYPE_INFO(0, mode, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_php_ini_scanned_files arginfo_ob_get_flush
+
+#define arginfo_php_ini_loaded_file arginfo_ob_get_flush
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_iptcembed, 0, 0, 2)
+       ZEND_ARG_TYPE_INFO(0, iptcdata, IS_STRING, 0)
+       ZEND_ARG_TYPE_INFO(0, jpeg_file_name, IS_STRING, 0)
+       ZEND_ARG_TYPE_INFO(0, spool, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_iptcparse, 0, 0, 1)
+       ZEND_ARG_TYPE_INFO(0, iptcblock, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_levenshtein, 0, 2, IS_LONG, 0)
+       ZEND_ARG_TYPE_INFO(0, str1, IS_STRING, 0)
+       ZEND_ARG_TYPE_INFO(0, str2, IS_STRING, 0)
+       ZEND_ARG_INFO(0, cost_ins)
+       ZEND_ARG_TYPE_INFO(0, cost_rep, IS_LONG, 0)
+       ZEND_ARG_TYPE_INFO(0, cost_del, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+#if defined(HAVE_SYMLINK) || defined(PHP_WIN32)
+ZEND_BEGIN_ARG_INFO_EX(arginfo_readlink, 0, 0, 1)
+       ZEND_ARG_TYPE_INFO(0, path, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+#endif
+
+#if defined(HAVE_SYMLINK) || defined(PHP_WIN32)
+#define arginfo_linkinfo arginfo_readlink
+#endif
+
+#if defined(HAVE_SYMLINK) || defined(PHP_WIN32)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_symlink, 0, 2, _IS_BOOL, 0)
+       ZEND_ARG_TYPE_INFO(0, target, IS_STRING, 0)
+       ZEND_ARG_TYPE_INFO(0, link, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+#endif
+
+#if defined(HAVE_SYMLINK) || defined(PHP_WIN32)
+#define arginfo_link arginfo_symlink
+#endif
+
+#define arginfo_ezmlm_hash arginfo_crc32
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_mail, 0, 3, _IS_BOOL, 0)
+       ZEND_ARG_TYPE_INFO(0, to, IS_STRING, 0)
+       ZEND_ARG_TYPE_INFO(0, subject, IS_STRING, 0)
+       ZEND_ARG_TYPE_INFO(0, message, IS_STRING, 0)
+       ZEND_ARG_INFO(0, additional_headers)
+       ZEND_ARG_TYPE_INFO(0, additional_parameters, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_abs, 0, 0, 1)
+       ZEND_ARG_INFO(0, number)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_ceil, 0, 1, IS_DOUBLE, 0)
+       ZEND_ARG_TYPE_INFO(0, number, IS_DOUBLE, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_floor arginfo_ceil
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_round, 0, 1, IS_DOUBLE, 0)
+       ZEND_ARG_INFO(0, number)
+       ZEND_ARG_TYPE_INFO(0, precision, IS_LONG, 0)
+       ZEND_ARG_TYPE_INFO(0, mode, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_sin arginfo_ceil
+
+#define arginfo_cos arginfo_ceil
+
+#define arginfo_tan arginfo_ceil
+
+#define arginfo_asin arginfo_ceil
+
+#define arginfo_acos arginfo_ceil
+
+#define arginfo_atan arginfo_ceil
+
+#define arginfo_atanh arginfo_ceil
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_atan2, 0, 2, IS_DOUBLE, 0)
+       ZEND_ARG_TYPE_INFO(0, y, IS_DOUBLE, 0)
+       ZEND_ARG_TYPE_INFO(0, x, IS_DOUBLE, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_sinh arginfo_ceil
+
+#define arginfo_cosh arginfo_ceil
+
+#define arginfo_tanh arginfo_ceil
+
+#define arginfo_asinh arginfo_ceil
+
+#define arginfo_acosh arginfo_ceil
+
+#define arginfo_expm1 arginfo_ceil
+
+#define arginfo_log1p arginfo_ceil
+
+#define arginfo_pi arginfo_lcg_value
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_is_finite, 0, 1, _IS_BOOL, 0)
+       ZEND_ARG_TYPE_INFO(0, number, IS_DOUBLE, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_is_nan arginfo_is_finite
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_intdiv, 0, 2, IS_LONG, 0)
+       ZEND_ARG_TYPE_INFO(0, dividend, IS_LONG, 0)
+       ZEND_ARG_TYPE_INFO(0, divisor, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_is_infinite arginfo_is_finite
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_pow, 0, 0, 2)
+       ZEND_ARG_INFO(0, base)
+       ZEND_ARG_INFO(0, exp)
+ZEND_END_ARG_INFO()
+
+#define arginfo_exp arginfo_ceil
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_log, 0, 0, 1)
+       ZEND_ARG_TYPE_INFO(0, number, IS_DOUBLE, 0)
+       ZEND_ARG_TYPE_INFO(0, base, IS_DOUBLE, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_log10 arginfo_ceil
+
+#define arginfo_sqrt arginfo_ceil
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_hypot, 0, 2, IS_DOUBLE, 0)
+       ZEND_ARG_TYPE_INFO(0, x, IS_DOUBLE, 0)
+       ZEND_ARG_TYPE_INFO(0, y, IS_DOUBLE, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_deg2rad arginfo_ceil
+
+#define arginfo_rad2deg arginfo_ceil
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_bindec, 0, 0, 1)
+       ZEND_ARG_TYPE_INFO(0, binary_string, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_hexdec, 0, 0, 1)
+       ZEND_ARG_TYPE_INFO(0, hex_string, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_octdec, 0, 0, 1)
+       ZEND_ARG_TYPE_INFO(0, octal_string, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_decbin, 0, 1, IS_STRING, 0)
+       ZEND_ARG_INFO(0, number)
+ZEND_END_ARG_INFO()
+
+#define arginfo_decoct arginfo_decbin
+
+#define arginfo_dechex arginfo_decbin
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_base_convert, 0, 3, IS_STRING, 0)
+       ZEND_ARG_INFO(0, number)
+       ZEND_ARG_TYPE_INFO(0, frombase, IS_LONG, 0)
+       ZEND_ARG_TYPE_INFO(0, tobase, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_number_format, 0, 1, IS_STRING, 0)
+       ZEND_ARG_TYPE_INFO(0, number, IS_DOUBLE, 0)
+       ZEND_ARG_TYPE_INFO(0, decimals, IS_LONG, 0)
+       ZEND_ARG_TYPE_INFO(0, decimal_point, IS_STRING, 1)
+       ZEND_ARG_TYPE_INFO(0, thousands_separator, IS_STRING, 1)
+ZEND_END_ARG_INFO()
+
+#define arginfo_fmod arginfo_hypot
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_fdiv, 0, 2, IS_DOUBLE, 0)
+       ZEND_ARG_TYPE_INFO(0, dividend, IS_DOUBLE, 0)
+       ZEND_ARG_TYPE_INFO(0, divisor, IS_DOUBLE, 0)
+ZEND_END_ARG_INFO()
+
+#if defined(HAVE_GETTIMEOFDAY)
+ZEND_BEGIN_ARG_INFO_EX(arginfo_microtime, 0, 0, 0)
+       ZEND_ARG_TYPE_INFO(0, get_as_float, _IS_BOOL, 0)
+ZEND_END_ARG_INFO()
+#endif
+
+#if defined(HAVE_GETTIMEOFDAY)
+ZEND_BEGIN_ARG_INFO_EX(arginfo_gettimeofday, 0, 0, 0)
+       ZEND_ARG_TYPE_INFO(0, return_float, _IS_BOOL, 0)
+ZEND_END_ARG_INFO()
+#endif
+
+#if defined(HAVE_GETRUSAGE)
+ZEND_BEGIN_ARG_INFO_EX(arginfo_getrusage, 0, 0, 0)
+       ZEND_ARG_TYPE_INFO(0, who, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+#endif
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_pack, 0, 0, 1)
+       ZEND_ARG_TYPE_INFO(0, format, IS_STRING, 0)
+       ZEND_ARG_VARIADIC_INFO(0, args)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_unpack, 0, 0, 2)
+       ZEND_ARG_TYPE_INFO(0, format, IS_STRING, 0)
+       ZEND_ARG_TYPE_INFO(0, data, IS_STRING, 0)
+       ZEND_ARG_TYPE_INFO(0, offset, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_password_get_info, 0, 1, IS_ARRAY, 1)
+       ZEND_ARG_TYPE_INFO(0, hash, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_password_hash, 0, 0, 2)
+       ZEND_ARG_TYPE_INFO(0, password, IS_STRING, 0)
+       ZEND_ARG_INFO(0, algo)
+       ZEND_ARG_TYPE_INFO(0, options, IS_ARRAY, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_password_needs_rehash, 0, 2, _IS_BOOL, 0)
+       ZEND_ARG_TYPE_INFO(0, hash, IS_STRING, 0)
+       ZEND_ARG_INFO(0, algo)
+       ZEND_ARG_TYPE_INFO(0, options, IS_ARRAY, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_password_verify, 0, 2, _IS_BOOL, 0)
+       ZEND_ARG_TYPE_INFO(0, password, IS_STRING, 0)
+       ZEND_ARG_TYPE_INFO(0, hash, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_password_algos arginfo_ob_list_handlers
+
+#if defined(PHP_CAN_SUPPORT_PROC_OPEN)
+ZEND_BEGIN_ARG_INFO_EX(arginfo_proc_open, 0, 0, 3)
+       ZEND_ARG_INFO(0, cmd)
+       ZEND_ARG_TYPE_INFO(0, descriptorspec, IS_ARRAY, 0)
+       ZEND_ARG_INFO(1, pipes)
+       ZEND_ARG_TYPE_INFO(0, cwd, IS_STRING, 1)
+       ZEND_ARG_TYPE_INFO(0, env, IS_ARRAY, 1)
+       ZEND_ARG_TYPE_INFO(0, other_options, IS_ARRAY, 1)
+ZEND_END_ARG_INFO()
+#endif
+
+#if defined(PHP_CAN_SUPPORT_PROC_OPEN)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_proc_close, 0, 1, IS_LONG, 0)
+       ZEND_ARG_INFO(0, process)
+ZEND_END_ARG_INFO()
+#endif
+
+#if defined(PHP_CAN_SUPPORT_PROC_OPEN)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_proc_terminate, 0, 1, _IS_BOOL, 0)
+       ZEND_ARG_INFO(0, process)
+       ZEND_ARG_TYPE_INFO(0, signal, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+#endif
+
+#if defined(PHP_CAN_SUPPORT_PROC_OPEN)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_proc_get_status, 0, 1, IS_ARRAY, 0)
+       ZEND_ARG_INFO(0, process)
+ZEND_END_ARG_INFO()
+#endif
+
+#define arginfo_quoted_printable_decode arginfo_base64_encode
+
+#define arginfo_quoted_printable_encode arginfo_base64_encode
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_mt_srand, 0, 0, IS_VOID, 0)
+       ZEND_ARG_TYPE_INFO(0, seed, IS_LONG, 0)
+       ZEND_ARG_TYPE_INFO(0, mode, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_mt_rand, 0, 0, 0)
+       ZEND_ARG_TYPE_INFO(0, min, IS_LONG, 0)
+       ZEND_ARG_TYPE_INFO(0, max, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_mt_getrandmax arginfo_ob_get_level
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_random_bytes, 0, 1, IS_STRING, 0)
+       ZEND_ARG_TYPE_INFO(0, length, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_random_int, 0, 2, IS_LONG, 0)
+       ZEND_ARG_TYPE_INFO(0, min, IS_LONG, 0)
+       ZEND_ARG_TYPE_INFO(0, max, IS_LONG, 0)
+ZEND_END_ARG_INFO()
index 78158ba70a521d0711703038659a5fed10f3a7b9..f00f7b4fd9fd023bad15d7565763c6cb9bb19678 100644 (file)
@@ -20,11 +20,12 @@ string(45) "Exception: Function unknown() does not exist
 "
 string(42) "Exception: Function echo() does not exist
 "
-string(119) "Function [ <internal:standard> function phpinfo ] {
+string(143) "Function [ <internal:standard> function phpinfo ] {
 
   - Parameters [1] {
-    Parameter #0 [ <optional> $what ]
+    Parameter #0 [ <optional> int $what ]
   }
+  - Return [ bool ]
 }
 
 "