1<?php
2
3/** @generate-class-entries */
4
5final class __PHP_Incomplete_Class
6{
7}
8
9class AssertionError extends Error
10{
11}
12
13/* main/main.c */
14
15function set_time_limit(int $seconds): bool {}
16
17/* main/SAPI.c */
18
19function header_register_callback(callable $callback): bool {}
20
21/* main/output.c */
22
23/** @param callable $callback */
24function ob_start($callback = null, int $chunk_size = 0, int $flags = PHP_OUTPUT_HANDLER_STDFLAGS): bool {}
25
26function ob_flush(): bool {}
27
28function ob_clean(): bool {}
29
30function ob_end_flush(): bool {}
31
32function ob_end_clean(): bool {}
33
34/** @refcount 1 */
35function ob_get_flush(): string|false {}
36
37/** @refcount 1 */
38function ob_get_clean(): string|false {}
39
40function ob_get_contents(): string|false {}
41
42function ob_get_level(): int {}
43
44function ob_get_length(): int|false {}
45
46/**
47 * @return array<int, string>
48 * @refcount 1
49 */
50function ob_list_handlers(): array {}
51
52/**
53 * @return array<int|string, int|string|array>
54 * @refcount 1
55 */
56function ob_get_status(bool $full_status = false): array {}
57
58function ob_implicit_flush(bool $enable = true): void {}
59
60function output_reset_rewrite_vars(): bool {}
61
62function output_add_rewrite_var(string $name, string $value): bool {}
63
64/* main/streams/userspace.c */
65
66function stream_wrapper_register(string $protocol, string $class, int $flags = 0): bool {}
67
68/** @alias stream_wrapper_register */
69function stream_register_wrapper(string $protocol, string $class, int $flags = 0): bool {}
70
71function stream_wrapper_unregister(string $protocol): bool {}
72
73function stream_wrapper_restore(string $protocol): bool {}
74
75/* array.c */
76
77function array_push(array &$array, mixed ...$values): int {}
78
79/** @return true */
80function krsort(array &$array, int $flags = SORT_REGULAR): bool {}
81
82/** @return true */
83function ksort(array &$array, int $flags = SORT_REGULAR): bool {}
84
85function count(Countable|array $value, int $mode = COUNT_NORMAL): int {}
86
87/** @alias count */
88function sizeof(Countable|array $value, int $mode = COUNT_NORMAL): int {}
89
90function natsort(array &$array): bool {}
91
92function natcasesort(array &$array): bool {}
93
94/** @return true */
95function asort(array &$array, int $flags = SORT_REGULAR): bool {}
96
97/** @return true */
98function arsort(array &$array, int $flags = SORT_REGULAR): bool {}
99
100/** @return true */
101function sort(array &$array, int $flags = SORT_REGULAR): bool {}
102
103function rsort(array &$array, int $flags = SORT_REGULAR): bool {}
104
105/** @return true */
106function usort(array &$array, callable $callback): bool {}
107
108/** @return true */
109function uasort(array &$array, callable $callback): bool {}
110
111/** @return true */
112function uksort(array &$array, callable $callback): bool {}
113
114function end(array|object &$array): mixed {}
115
116function prev(array|object &$array): mixed {}
117
118function next(array|object &$array): mixed {}
119
120function reset(array|object &$array): mixed {}
121
122function current(array|object $array): mixed {}
123
124/** @alias current */
125function pos(array|object $array): mixed {}
126
127function key(array|object $array): int|string|null {}
128
129function min(mixed $value, mixed ...$values): mixed {}
130
131function max(mixed $value, mixed ...$values): mixed {}
132
133/** @return true */
134function array_walk(array|object &$array, callable $callback, mixed $arg = UNKNOWN): bool {}
135
136/** @return true */
137function array_walk_recursive(array|object &$array, callable $callback, mixed $arg = UNKNOWN): bool {}
138
139function in_array(mixed $needle, array $haystack, bool $strict = false): bool {}
140
141function array_search(mixed $needle, array $haystack, bool $strict = false): int|string|false {}
142
143/** @prefer-ref $array */
144function extract(array &$array, int $flags = EXTR_OVERWRITE, string $prefix = ""): int {}
145
146/**
147 * @param array|string $var_name
148 * @param array|string $var_names
149 * @return array<string, mixed|ref>
150 * @refcount 1
151 */
152function compact($var_name, ...$var_names): array {}
153
154/** @return array<int, mixed> */
155function array_fill(int $start_index, int $count, mixed $value): array {}
156
157/** @refcount 1 */
158function array_fill_keys(array $keys, mixed $value): array {}
159
160/**
161 * @param string|int|float $start
162 * @param string|int|float $end
163 */
164function range($start, $end, int|float $step = 1): array {}
165
166/** @return true */
167function shuffle(array &$array): bool {}
168
169function array_pop(array &$array): mixed {}
170
171function array_shift(array &$array): mixed {}
172
173function array_unshift(array &$array, mixed ...$values): int {}
174
175function array_splice(array &$array, int $offset, ?int $length = null, mixed $replacement = []): array {}
176
177function array_slice(array $array, int $offset, ?int $length = null, bool $preserve_keys = false): array {}
178
179function array_merge(array ...$arrays): array {}
180
181function array_merge_recursive(array ...$arrays): array {}
182
183/** @refcount 1 */
184function array_replace(array $array, array ...$replacements): array {}
185
186/** @refcount 1 */
187function array_replace_recursive(array $array, array ...$replacements): array {}
188
189/** @return array<int, int|string> */
190function array_keys(array $array, mixed $filter_value = UNKNOWN, bool $strict = false): array {}
191
192function array_key_first(array $array): int|string|null {}
193
194function array_key_last(array $array): int|string|null {}
195
196/** @return array<int, mixed|ref> */
197function array_values(array $array): array {}
198
199/**
200 * @return array<int|string, int>
201 * @refcount 1
202 */
203function array_count_values(array $array): array {}
204
205/** @refcount 1 */
206function array_column(array $array, int|string|null $column_key, int|string|null $index_key = null): array {}
207
208/** @refcount 1 */
209function array_reverse(array $array, bool $preserve_keys = false): array {}
210
211function array_pad(array $array, int $length, mixed $value): array {}
212
213/**
214 * @return array<int|string, int|string>
215 * @refcount 1
216 */
217function array_flip(array $array): array {}
218
219/** @refcount 1 */
220function array_change_key_case(array $array, int $case = CASE_LOWER): array {}
221
222function array_unique(array $array, int $flags = SORT_STRING): array {}
223
224/** @refcount 1 */
225function array_intersect_key(array $array, array ...$arrays): array {}
226
227/**
228 * @param array|callable $rest
229 * @refcount 1
230 */
231function array_intersect_ukey(array $array, ...$rest): array {}
232
233/** @refcount 1 */
234function array_intersect(array $array, array ...$arrays): array {}
235
236/**
237 * @param array|callable $rest
238 * @refcount 1
239 */
240function array_uintersect(array $array, ...$rest): array {}
241
242/** @refcount 1 */
243function array_intersect_assoc(array $array, array ...$arrays): array {}
244
245/**
246 * @param array|callable $rest
247 * @refcount 1
248 */
249function array_uintersect_assoc(array $array, ...$rest): array {}
250
251/**
252 * @param array|callable $rest
253 * @refcount 1
254 */
255function array_intersect_uassoc(array $array, ...$rest): array {}
256
257/**
258 * @param array|callable $rest
259 * @refcount 1
260 */
261function array_uintersect_uassoc(array $array, ...$rest): array {}
262
263/** @refcount 1 */
264function array_diff_key(array $array, array ...$arrays): array {}
265
266/**
267 * @param array|callable $rest
268 * @refcount 1
269 */
270function array_diff_ukey(array $array, ...$rest): array {}
271
272function array_diff(array $array, array ...$arrays): array {}
273
274/**
275 * @param array|callable $rest
276 * @refcount 1
277 */
278function array_udiff(array $array, ...$rest): array {}
279
280/** @refcount 1 */
281function array_diff_assoc(array $array, array ...$arrays): array {}
282
283/**
284 * @param array|callable $rest
285 * @refcount 1
286 */
287function array_diff_uassoc(array $array, ...$rest): array {}
288
289/**
290 * @param array|callable $rest
291 * @refcount 1
292 */
293function array_udiff_assoc(array $array, ...$rest): array {}
294
295/**
296 * @param array|callable $rest
297 * @refcount 1
298 */
299function array_udiff_uassoc(array $array, ...$rest): array {}
300
301/**
302 * @param array $array
303 * @param array|int $rest
304 * @prefer-ref $array
305 * @prefer-ref $rest
306 */
307function array_multisort(&$array, &...$rest): bool {}
308
309/** @return int|string|array<int, int|string> */
310function array_rand(array $array, int $num = 1): int|string|array {}
311
312function array_sum(array $array): int|float {}
313
314function array_product(array $array): int|float {}
315
316function array_reduce(array $array, callable $callback, mixed $initial = null): mixed {}
317
318function array_filter(array $array, ?callable $callback = null, int $mode = 0): array {}
319
320function array_map(?callable $callback, array $array, array ...$arrays): array {}
321
322/** @param string|int $key */
323function array_key_exists($key, array $array): bool {}
324
325/**
326 * @param string|int $key
327 * @alias array_key_exists
328 */
329function key_exists($key, array $array): bool {}
330
331function array_chunk(array $array, int $length, bool $preserve_keys = false): array {}
332
333function array_combine(array $keys, array $values): array {}
334
335function array_is_list(array $array): bool {}
336
337/* base64.c */
338
339/** @refcount 1 */
340function base64_encode(string $string): string {}
341
342/** @refcount 1 */
343function base64_decode(string $string, bool $strict = false): string|false {}
344
345/* basic_functions.c */
346
347function constant(string $name): mixed {}
348
349function ip2long(string $ip): int|false {}
350
351/** @refcount 1 */
352function long2ip(int $ip): string|false {}
353
354/**
355 * @return string|array<string, string>|false
356 * @refcount 1
357 */
358function getenv(?string $name = null, bool $local_only = false): string|array|false {}
359
360#ifdef HAVE_PUTENV
361function putenv(string $assignment): bool {}
362#endif
363
364/**
365 * @param int $rest_index
366 * @return array<int|string, string|array|false>|false
367 * @refcount 1
368 */
369function getopt(string $short_options, array $long_options = [], &$rest_index = null): array|false {}
370
371function flush(): void {}
372
373function sleep(int $seconds): int {}
374
375function usleep(int $microseconds): void {}
376
377#if HAVE_NANOSLEEP
378/**
379 * @return array<string, int>|bool
380 * @refcount 1
381 */
382function time_nanosleep(int $seconds, int $nanoseconds): array|bool {}
383
384function time_sleep_until(float $timestamp): bool {}
385#endif
386
387/** @refcount 1 */
388function get_current_user(): string {}
389
390/** @return string|array<int|string, string|array>|false */
391function get_cfg_var(string $option): string|array|false {}
392
393function error_log(string $message, int $message_type = 0, ?string $destination = null, ?string $additional_headers = null): bool {}
394
395/**
396 * @return array<string, int|string>|null
397 * @refcount 1
398 */
399function error_get_last(): ?array {}
400
401function error_clear_last(): void {}
402
403function call_user_func(callable $callback, mixed ...$args): mixed {}
404
405function call_user_func_array(callable $callback, array $args): mixed {}
406
407function forward_static_call(callable $callback, mixed ...$args): mixed {}
408
409function forward_static_call_array(callable $callback, array $args): mixed {}
410
411/** @return false|null */
412function register_shutdown_function(callable $callback, mixed ...$args): ?bool {}
413
414/** @refcount 1 */
415function highlight_file(string $filename, bool $return = false): string|bool {}
416
417/** @alias highlight_file */
418function show_source(string $filename, bool $return = false): string|bool {}
419
420/** @refcount 1 */
421function php_strip_whitespace(string $filename): string {}
422
423/** @refcount 1 */
424function highlight_string(string $string, bool $return = false): string|bool {}
425
426function ini_get(string $option): string|false {}
427
428/**
429 * @return array<string, string|array|null>|false
430 * @refcount 1
431 */
432function ini_get_all(?string $extension = null, bool $details = true): array|false {}
433
434function ini_set(string $option, string|int|float|bool|null $value): string|false {}
435
436/** @alias ini_set */
437function ini_alter(string $option, string|int|float|bool|null $value): string|false {}
438
439function ini_restore(string $option): void {}
440
441/** @refcount 1 */
442function set_include_path(string $include_path): string|false {}
443
444/** @refcount 1 */
445function get_include_path(): string|false {}
446
447/** @refcount 1 */
448function print_r(mixed $value, bool $return = false): string|bool {}
449
450function connection_aborted(): int {}
451
452function connection_status(): int {}
453
454function ignore_user_abort(?bool $enable = null): int {}
455
456#if HAVE_GETSERVBYNAME
457function getservbyname(string $service, string $protocol): int|false {}
458#endif
459
460#if HAVE_GETSERVBYPORT
461/** @refcount 1 */
462function getservbyport(int $port, string $protocol): string|false {}
463#endif
464
465#if HAVE_GETPROTOBYNAME
466function getprotobyname(string $protocol): int|false {}
467#endif
468
469#if HAVE_GETPROTOBYNUMBER
470/** @refcount 1 */
471function getprotobynumber(int $protocol): string|false {}
472#endif
473
474function register_tick_function(callable $callback, mixed ...$args): bool {}
475
476function unregister_tick_function(callable $callback): void {}
477
478function is_uploaded_file(string $filename): bool {}
479
480function move_uploaded_file(string $from, string $to): bool {}
481
482/**
483 * @return array<int|string, bool|int|float|string|array|null>|false
484 * @refcount 1
485 */
486function parse_ini_file(string $filename, bool $process_sections = false, int $scanner_mode = INI_SCANNER_NORMAL): array|false {}
487
488/**
489 * @return array<int|string, bool|int|float|string|array|null>|false
490 * @refcount 1
491 */
492function parse_ini_string(string $ini_string, bool $process_sections = false, int $scanner_mode = INI_SCANNER_NORMAL): array|false {}
493
494#if ZEND_DEBUG
495/**
496 * @return array<string, string|array>
497 * @refcount 1
498 */
499function config_get_hash(): array {}
500#endif
501
502#ifdef HAVE_GETLOADAVG
503/**
504 * @return array<int, float>|false
505 * @refcount 1
506 */
507function sys_getloadavg(): array|false {}
508#endif
509
510/* browscap.c */
511
512/**
513 * @return object|array<string, mixed>|false
514 * @refcount 1
515 */
516function get_browser(?string $user_agent = null, bool $return_array = false): object|array|false {}
517
518/* crc32.c */
519
520function crc32(string $string): int {}
521
522/* crypt.c */
523
524/** @refcount 1 */
525function crypt(string $string, string $salt): string {}
526
527/* datetime.c */
528
529#if HAVE_STRPTIME
530/**
531 * @return array<string, int|string>|false
532 * @deprecated
533 * @refcount 1
534 */
535function strptime(string $timestamp, string $format): array|false {}
536#endif
537
538/* dns.c */
539
540#ifdef HAVE_GETHOSTNAME
541/** @refcount 1 */
542function gethostname(): string|false {}
543#endif
544
545/** @refcount 1 */
546function gethostbyaddr(string $ip): string|false {}
547
548/** @refcount 1 */
549function gethostbyname(string $hostname): string {}
550
551/**
552 * @return array<int, string>|false
553 * @refcount 1
554 */
555function gethostbynamel(string $hostname): array|false {}
556
557#if defined(PHP_WIN32) || HAVE_DNS_SEARCH_FUNC
558function dns_check_record(string $hostname, string $type = "MX"): bool {}
559
560/** @alias dns_check_record */
561function checkdnsrr(string $hostname, string $type = "MX"): bool {}
562
563/**
564 * @param array $authoritative_name_servers
565 * @param array $additional_records
566 * @return array<int, array>|false
567 * @refcount 1
568 */
569function dns_get_record(string $hostname, int $type = DNS_ANY, &$authoritative_name_servers = null, &$additional_records = null, bool $raw = false): array|false {}
570
571/**
572 * @param array $hosts
573 * @param array $weights
574 */
575function dns_get_mx(string $hostname, &$hosts, &$weights = null): bool {}
576
577/**
578 * @param array $hosts
579 * @param array $weights
580 * @alias dns_get_mx
581 */
582function getmxrr(string $hostname, &$hosts, &$weights = null): bool {}
583#endif
584
585/* net.c */
586
587#if defined(PHP_WIN32) || HAVE_GETIFADDRS || defined(__PASE__)
588function net_get_interfaces(): array|false {}
589#endif
590
591/* ftok.c */
592
593#if HAVE_FTOK
594function ftok(string $filename, string $project_id): int {}
595#endif
596
597/* hrtime.c */
598
599function hrtime(bool $as_number = false): array|int|float|false {}
600
601/* lcg.c */
602
603function lcg_value(): float {}
604
605/* md5.c */
606
607/** @refcount 1 */
608function md5(string $string, bool $binary = false): string {}
609
610/** @refcount 1 */
611function md5_file(string $filename, bool $binary = false): string|false {}
612
613/* pageinfo.c */
614
615function getmyuid(): int|false {}
616
617function getmygid(): int|false {}
618
619function getmypid(): int|false {}
620
621function getmyinode(): int|false {}
622
623function getlastmod(): int|false {}
624
625/* sha1.c */
626
627/** @refcount 1 */
628function sha1(string $string, bool $binary = false): string {}
629
630/** @refcount 1 */
631function sha1_file(string $filename, bool $binary = false): string|false {}
632
633/* syslog.c */
634
635#ifdef HAVE_SYSLOG_H
636function openlog(string $prefix, int $flags, int $facility): bool {}
637
638/** @return true */
639function closelog(): bool {}
640
641/** @return true */
642function syslog(int $priority, string $message): bool {} // TODO make return type void
643#endif
644
645#ifdef HAVE_INET_NTOP
646/** @refcount 1 */
647function inet_ntop(string $ip): string|false {}
648#endif
649
650#ifdef HAVE_INET_PTON
651/** @refcount 1 */
652function inet_pton(string $ip): string|false {}
653#endif
654
655/* metaphone.c */
656
657/** @refcount 1 */
658function metaphone(string $string, int $max_phonemes = 0): string {}
659
660/* {{{ head.c */
661function header(string $header, bool $replace = true, int $response_code = 0): void {}
662
663function header_remove(?string $name = null): void {}
664
665function setrawcookie(string $name, string $value = "", array|int $expires_or_options = 0, string $path = "", string $domain = "", bool $secure = false, bool $httponly = false): bool {}
666
667function setcookie(string $name, string $value = "", array|int $expires_or_options = 0, string $path = "", string $domain = "", bool $secure = false, bool $httponly = false): bool {}
668
669function http_response_code(int $response_code = 0): int|bool {}
670
671/**
672 * @param string $filename
673 * @param int $line
674 */
675function headers_sent(&$filename = null, &$line = null): bool {}
676
677/**
678 * @return array<int, string>
679 * @refcount 1
680 */
681function headers_list(): array {}
682
683/* {{{ html.c */
684
685/** @refcount 1 */
686function htmlspecialchars(string $string, int $flags = ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401, ?string $encoding = null, bool $double_encode = true): string {}
687
688function htmlspecialchars_decode(string $string, int $flags = ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401): string {}
689
690function html_entity_decode(string $string, int $flags = ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401, ?string $encoding = null): string {}
691
692/** @refcount 1 */
693function htmlentities(string $string, int $flags = ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401, ?string $encoding = null, bool $double_encode = true): string {}
694
695/**
696 * @return array<string, string>
697 * @refcount 1
698 */
699function get_html_translation_table(int $table = HTML_SPECIALCHARS, int $flags = ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401, string $encoding = "UTF-8"): array {}
700
701/* }}} */
702
703/* assert.c */
704
705function assert(mixed $assertion, Throwable|string|null $description = null): bool {}
706
707function assert_options(int $option, mixed $value = UNKNOWN): mixed {}
708
709/* string.c */
710
711/** @refcount 1 */
712function bin2hex(string $string): string {}
713
714/** @refcount 1 */
715function hex2bin(string $string): string|false {}
716
717function strspn(string $string, string $characters, int $offset = 0, ?int $length = null): int {}
718
719function strcspn(string $string, string $characters, int $offset = 0, ?int $length = null): int {}
720
721#if HAVE_NL_LANGINFO
722/** @refcount 1 */
723function nl_langinfo(int $item): string|false {}
724#endif
725
726function strcoll(string $string1, string $string2): int {}
727
728function trim(string $string, string $characters = " \n\r\t\v\0"): string {}
729
730function rtrim(string $string, string $characters = " \n\r\t\v\0"): string {}
731
732/** @alias rtrim */
733function chop(string $string, string $characters = " \n\r\t\v\0"): string {}
734
735function ltrim(string $string, string $characters = " \n\r\t\v\0"): string {}
736
737/** @refcount 1 */
738function wordwrap(string $string, int $width = 75, string $break = "\n", bool $cut_long_words = false): string {}
739
740/**
741 * @return array<int, string>
742 * @refcount 1
743 */
744function explode(string $separator, string $string, int $limit = PHP_INT_MAX): array {}
745
746function implode(string|array $separator, ?array $array = null): string {}
747
748/** @alias implode */
749function join(string|array $separator, ?array $array = null): string {}
750
751/** @refcount 1 */
752function strtok(string $string, ?string $token = null): string|false {}
753
754function strtoupper(string $string): string {}
755
756function strtolower(string $string): string {}
757
758/** @refcount 1 */
759function basename(string $path, string $suffix = ""): string {}
760
761/** @refcount 1 */
762function dirname(string $path, int $levels = 1): string {}
763
764/**
765 * @return array<string, string>|string
766 * @refcount 1
767 */
768function pathinfo(string $path, int $flags = PATHINFO_ALL): array|string {}
769
770/** @refcount 1 */
771function stristr(string $haystack, string $needle, bool $before_needle = false): string|false {}
772
773/** @refcount 1 */
774function strstr(string $haystack, string $needle, bool $before_needle = false): string|false {}
775
776/** @alias strstr */
777function strchr(string $haystack, string $needle, bool $before_needle = false): string|false {}
778
779function strpos(string $haystack, string $needle, int $offset = 0): int|false {}
780
781function stripos(string $haystack, string $needle, int $offset = 0): int|false {}
782
783function strrpos(string $haystack, string $needle, int $offset = 0): int|false {}
784
785function strripos(string $haystack, string $needle, int $offset = 0): int|false {}
786
787/** @refcount 1 */
788function strrchr(string $haystack, string $needle): string|false {}
789
790function str_contains(string $haystack, string $needle): bool {}
791
792function str_starts_with(string $haystack, string $needle): bool {}
793
794function str_ends_with(string $haystack, string $needle): bool {}
795
796/** @refcount 1 */
797function chunk_split(string $string, int $length = 76, string $separator = "\r\n"): string {}
798
799function substr(string $string, int $offset, ?int $length = null): string {}
800
801/** @return string|array<int|string, string> */
802function substr_replace(array|string $string, array|string $replace, array|int $offset, array|int|null $length = null): string|array {}
803
804/** @refcount 1 */
805function quotemeta(string $string): string {}
806
807function ord(string $character): int {}
808
809/** @refcount 1 */
810function chr(int $codepoint): string {}
811
812function ucfirst(string $string): string {}
813
814function lcfirst(string $string): string {}
815
816/** @refcount 1 */
817function ucwords(string $string, string $separators = " \t\r\n\f\v"): string {}
818
819function strtr(string $string, string|array $from, ?string $to = null): string {}
820
821/** @refcount 1 */
822function strrev(string $string): string {}
823
824/** @param float $percent */
825function similar_text(string $string1, string $string2, &$percent = null): int {}
826
827function addcslashes(string $string, string $characters): string {}
828
829function addslashes(string $string): string {}
830
831/** @refcount 1 */
832function stripcslashes(string $string): string {}
833
834/** @refcount 1 */
835function stripslashes(string $string): string {}
836
837/**
838 * @param int $count
839 * @return string|array<int|string, string>
840 */
841function str_replace(array|string $search, array|string $replace, string|array $subject, &$count = null): string|array {}
842
843/**
844 * @param int $count
845 * @return string|array<int|string, string>
846 */
847function str_ireplace(array|string $search, array|string $replace, string|array $subject, &$count = null): string|array {}
848
849/** @refcount 1 */
850function hebrev(string $string, int $max_chars_per_line = 0): string {}
851
852function nl2br(string $string, bool $use_xhtml = true): string {}
853
854/** @refcount 1 */
855function strip_tags(string $string, array|string|null $allowed_tags = null): string {}
856
857/**
858 * @param array|string $locales
859 * @param string $rest
860 */
861function setlocale(int $category, $locales, ...$rest): string|false {}
862
863/** @param array $result */
864function parse_str(string $string, &$result): void {}
865
866/**
867 * @return array<int, string|null>
868 * @refcount 1
869 */
870function str_getcsv(string $string, string $separator = ",", string $enclosure = "\"", string $escape = "\\"): array {}
871
872/** @refcount 1 */
873function str_repeat(string $string, int $times): string {}
874
875/**
876 * @return array<int, int>|string
877 * @refcount 1
878 */
879function count_chars(string $string, int $mode = 0): array|string {}
880
881function strnatcmp(string $string1, string $string2): int {}
882
883/**
884 * @return array<string, int|string|array>
885 * @refcount 1
886 */
887function localeconv(): array {}
888
889function strnatcasecmp(string $string1, string $string2): int {}
890
891function substr_count(string $haystack, string $needle, int $offset = 0, ?int $length = null): int {}
892
893function str_pad(string $string, int $length, string $pad_string = " ", int $pad_type = STR_PAD_RIGHT): string {}
894
895/**
896 * @return array<int, mixed>|int|null
897 * @refcount 1
898 */
899function sscanf(string $string, string $format, mixed &...$vars): array|int|null {}
900
901/** @refcount 1 */
902function str_rot13(string $string): string {}
903
904/** @refcount 1 */
905function str_shuffle(string $string): string {}
906
907/**
908 * @return array<int, string>|int
909 * @refcount 1
910 */
911function str_word_count(string $string, int $format = 0, ?string $characters = null): array|int {}
912
913/**
914 * @return array<int, string>
915 * @refcount 1
916 */
917function str_split(string $string, int $length = 1): array {}
918
919/** @refcount 1 */
920function strpbrk(string $string, string $characters): string|false {}
921
922function substr_compare(string $haystack, string $needle, int $offset, ?int $length = null, bool $case_insensitive = false): int {}
923
924/** @refcount 1 */
925function utf8_encode(string $string): string {}
926
927/** @refcount 1 */
928function utf8_decode(string $string): string {}
929
930/* dir.c */
931
932/**
933 * @param resource|null $context
934 * @return resource|false
935 */
936function opendir(string $directory, $context = null) {}
937
938/**
939 * @param resource|null $context
940 * @refcount 1
941 */
942function dir(string $directory, $context = null): Directory|false {}
943
944/** @param resource|null $dir_handle */
945function closedir($dir_handle = null): void {}
946
947function chdir(string $directory): bool {}
948
949#if defined(HAVE_CHROOT) && !defined(ZTS) && ENABLE_CHROOT_FUNC
950function chroot(string $directory): bool {}
951#endif
952
953/** @refcount 1 */
954function getcwd(): string|false {}
955
956/** @param resource|null $dir_handle */
957function rewinddir($dir_handle = null): void {}
958
959/**
960 * @param resource|null $dir_handle
961 * @refcount 1
962 */
963function readdir($dir_handle = null): string|false {}
964
965/**
966 * @param resource|null $context
967 * @return array<int, string>|false
968 * @refcount 1
969 */
970function scandir(string $directory, int $sorting_order = SCANDIR_SORT_ASCENDING, $context = null): array|false {}
971
972#ifdef HAVE_GLOB
973/**
974 * @return array<int, string>|false
975 * @refcount 1
976 */
977function glob(string $pattern, int $flags = 0): array|false {}
978#endif
979
980/* exec.c */
981
982/**
983 * @param array $output
984 * @param int $result_code
985 * @refcount 1
986 */
987function exec(string $command, &$output = null, &$result_code = null): string|false {}
988
989/**
990 * @param int $result_code
991 * @refcount 1
992 */
993function system(string $command, &$result_code = null): string|false {}
994
995/**
996 * @param int $result_code
997 * @return false|null
998 */
999function passthru(string $command, &$result_code = null): ?bool {}
1000
1001/** @refcount 1 */
1002function escapeshellcmd(string $command): string {}
1003
1004/** @refcount 1 */
1005function escapeshellarg(string $arg): string {}
1006
1007/** @refcount 1 */
1008function shell_exec(string $command): string|false|null {}
1009
1010#ifdef HAVE_NICE
1011function proc_nice(int $priority): bool {}
1012#endif
1013
1014/* file.c */
1015
1016/**
1017 * @param resource $stream
1018 * @param int $would_block
1019 */
1020function flock($stream, int $operation, &$would_block = null): bool {}
1021
1022/**
1023 * @return array<string, string>|false
1024 * @refcount 1
1025 */
1026function get_meta_tags(string $filename, bool $use_include_path = false): array|false {}
1027
1028/** @param resource $handle */
1029function pclose($handle): int {}
1030
1031/**
1032 * @return resource|false
1033 * @refcount 1
1034 */
1035function popen(string $command, string $mode) {}
1036
1037/** @param resource|null $context */
1038function readfile(string $filename, bool $use_include_path = false, $context = null): int|false {}
1039
1040/** @param resource $stream */
1041function rewind($stream): bool {}
1042
1043/** @param resource|null $context */
1044function rmdir(string $directory, $context = null): bool {}
1045
1046function umask(?int $mask = null): int {}
1047
1048/** @param resource $stream */
1049function fclose($stream): bool {}
1050
1051/** @param resource $stream */
1052function feof($stream): bool {}
1053
1054/** @param resource $stream */
1055function fgetc($stream): string|false {}
1056
1057/**
1058 * @param resource $stream
1059 * @refcount 1
1060 */
1061function fgets($stream, ?int $length = null): string|false {}
1062
1063/**
1064 * @param resource $stream
1065 * @refcount 1
1066 */
1067function fread($stream, int $length): string|false {}
1068
1069/**
1070 * @param resource|null $context
1071 * @return resource|false
1072 * @refcount 1
1073 */
1074function fopen(string $filename, string $mode, bool $use_include_path = false, $context = null) {}
1075
1076/**
1077 * @param resource $stream
1078 * @return array<int, mixed>|int|false|null
1079 * @refcount 1
1080 */
1081function fscanf($stream, string $format, mixed &...$vars): array|int|false|null {}
1082
1083/** @param resource $stream */
1084function fpassthru($stream): int {}
1085
1086/** @param resource $stream */
1087function ftruncate($stream, int $size): bool {}
1088
1089/**
1090 * @param resource $stream
1091 * @return array<int|string, int>|false
1092 * @refcount 1
1093 */
1094function fstat($stream): array|false {}
1095
1096/** @param resource $stream */
1097function fseek($stream, int $offset, int $whence = SEEK_SET): int {}
1098
1099/** @param resource $stream */
1100function ftell($stream): int|false {}
1101
1102/** @param resource $stream */
1103function fflush($stream): bool {}
1104
1105/** @param resource $stream */
1106function fsync($stream): bool {}
1107
1108/** @param resource $stream */
1109function fdatasync($stream): bool {}
1110
1111/** @param resource $stream */
1112function fwrite($stream, string $data, ?int $length = null): int|false {}
1113
1114/**
1115 * @param resource $stream
1116 * @alias fwrite
1117 */
1118function fputs($stream, string $data, ?int $length = null): int|false {}
1119
1120/** @param resource|null $context */
1121function mkdir(string $directory, int $permissions = 0777, bool $recursive = false, $context = null): bool {}
1122
1123/** @param resource|null $context */
1124function rename(string $from, string $to, $context = null): bool {}
1125
1126/** @param resource|null $context */
1127function copy(string $from, string $to, $context = null): bool {}
1128
1129/** @refcount 1 */
1130function tempnam(string $directory, string $prefix): string|false {}
1131
1132/**
1133 * @return resource|false
1134 * @refcount 1
1135 */
1136function tmpfile() {}
1137
1138/**
1139 * @param resource|null $context
1140 * @return array<int, string>|false
1141 * @refcount 1
1142 */
1143function file(string $filename, int $flags = 0, $context = null): array|false {}
1144
1145/**
1146 * @param resource|null $context
1147 * @refcount 1
1148 */
1149function file_get_contents(string $filename, bool $use_include_path = false, $context = null, int $offset = 0, ?int $length = null): string|false {}
1150
1151/** @param resource|null $context */
1152function unlink(string $filename, $context = null): bool {}
1153
1154/** @param resource|null $context */
1155function file_put_contents(string $filename, mixed $data, int $flags = 0, $context = null): int|false {}
1156
1157/** @param resource $stream */
1158function fputcsv($stream, array $fields, string $separator = ",", string $enclosure = "\"", string $escape = "\\", string $eol = "\n"): int|false {}
1159
1160/**
1161 * @param resource $stream
1162 * @return array<int, string|null>|false
1163 * @refcount 1
1164 */
1165function fgetcsv($stream, ?int $length = null, string $separator = ",", string $enclosure = "\"", string $escape = "\\"): array|false {}
1166
1167/** @refcount 1 */
1168function realpath(string $path): string|false {}
1169
1170#ifdef HAVE_FNMATCH
1171function fnmatch(string $pattern, string $filename, int $flags = 0): bool {}
1172#endif
1173
1174/** @refcount 1 */
1175function sys_get_temp_dir(): string {}
1176
1177/* filestat.c */
1178
1179function fileatime(string $filename): int|false {}
1180
1181function filectime(string $filename): int|false {}
1182
1183function filegroup(string $filename): int|false {}
1184
1185function fileinode(string $filename): int|false {}
1186
1187function filemtime(string $filename): int|false {}
1188
1189function fileowner(string $filename): int|false {}
1190
1191function fileperms(string $filename): int|false {}
1192
1193function filesize(string $filename): int|false {}
1194
1195/** @refcount 1 */
1196function filetype(string $filename): string|false {}
1197
1198function file_exists(string $filename): bool {}
1199
1200function is_writable(string $filename): bool {}
1201
1202/** @alias is_writable */
1203function is_writeable(string $filename): bool {}
1204
1205function is_readable(string $filename): bool {}
1206
1207function is_executable(string $filename): bool {}
1208
1209function is_file(string $filename): bool {}
1210
1211function is_dir(string $filename): bool {}
1212
1213function is_link(string $filename): bool {}
1214
1215/**
1216 * @return array<int|string, bool|int|string>|false
1217 * @refcount 1
1218 */
1219function stat(string $filename): array|false {}
1220
1221/**
1222 * @return array<int|string, bool|int|string>|false
1223 * @refcount 1
1224 */
1225function lstat(string $filename): array|false {}
1226
1227function chown(string $filename, string|int $user): bool {}
1228
1229function chgrp(string $filename, string|int $group): bool {}
1230
1231#if HAVE_LCHOWN
1232function lchown(string $filename, string|int $user): bool {}
1233
1234function lchgrp(string $filename, string|int $group): bool {}
1235#endif
1236
1237function chmod(string $filename, int $permissions): bool {}
1238
1239#if HAVE_UTIME
1240function touch(string $filename, ?int $mtime = null, ?int $atime = null): bool {}
1241#endif
1242
1243function clearstatcache(bool $clear_realpath_cache = false, string $filename = ""): void {}
1244
1245function disk_total_space(string $directory): float|false {}
1246
1247function disk_free_space(string $directory): float|false {}
1248
1249/** @alias disk_free_space */
1250function diskfreespace(string $directory): float|false {}
1251
1252/**
1253 * @return array<string, array>
1254 * @refcount 1
1255 */
1256function realpath_cache_get(): array {}
1257
1258function realpath_cache_size(): int {}
1259
1260/* formatted_print.c */
1261
1262/** @refcount 1 */
1263function sprintf(string $format, mixed ...$values): string {}
1264
1265function printf(string $format, mixed ...$values): int {}
1266
1267function vprintf(string $format, array $values): int {}
1268
1269/** @refcount 1 */
1270function vsprintf(string $format, array $values): string {}
1271
1272/** @param resource $stream */
1273function fprintf($stream, string $format, mixed ...$values): int {}
1274
1275/** @param resource $stream */
1276function vfprintf($stream, string $format, array $values): int {}
1277
1278/* fsock.c */
1279
1280/**
1281 * @param int $error_code
1282 * @param string $error_message
1283 * @return resource|false
1284 * @refcount 1
1285 */
1286function fsockopen(string $hostname, int $port = -1, &$error_code = null, &$error_message = null, ?float $timeout = null) {}
1287
1288/**
1289 * @param int $error_code
1290 * @param string $error_message
1291 * @return resource|false
1292 */
1293function pfsockopen(string $hostname, int $port = -1, &$error_code = null, &$error_message = null, ?float $timeout = null) {}
1294
1295/* http.c */
1296
1297/** @refcount 1 */
1298function http_build_query(array|object $data, string $numeric_prefix = "", ?string $arg_separator = null, int $encoding_type = PHP_QUERY_RFC1738): string {}
1299
1300/* image.c */
1301
1302/** @refcount 1 */
1303function image_type_to_mime_type(int $image_type): string {}
1304
1305/** @refcount 1 */
1306function image_type_to_extension(int $image_type, bool $include_dot = true): string|false {}
1307
1308/**
1309 * @param array $image_info
1310 * @return array<int|string, int|string>|false
1311 * @refcount 1
1312 */
1313function getimagesize(string $filename, &$image_info = null): array|false {}
1314
1315/**
1316 * @param array $image_info
1317 * @return array<int|string, int|string>|false
1318 * @refcount 1
1319 */
1320function getimagesizefromstring(string $string, &$image_info = null): array|false {}
1321
1322/* info.c */
1323
1324/** @return true */
1325function phpinfo(int $flags = INFO_ALL): bool {} // make return type void
1326
1327/** @refcount 1 */
1328function phpversion(?string $extension = null): string|false {}
1329
1330/** @return true */
1331function phpcredits(int $flags = CREDITS_ALL): bool {} // make return type void
1332
1333/** @refcount 1 */
1334function php_sapi_name(): string|false {}
1335
1336/** @refcount 1 */
1337function php_uname(string $mode = "a"): string {}
1338
1339/** @refcount 1 */
1340function php_ini_scanned_files(): string|false {}
1341
1342/** @refcount 1 */
1343function php_ini_loaded_file(): string|false {}
1344
1345/* iptc.c */
1346
1347/** @refcount 1 */
1348function iptcembed(string $iptc_data, string $filename, int $spool = 0): string|bool {}
1349
1350/**
1351 * @return array<string, array>|false
1352 * @refcount 1
1353 */
1354function iptcparse(string $iptc_block): array|false {}
1355
1356/* levenshtein.c */
1357
1358function levenshtein(string $string1, string $string2, int $insertion_cost = 1, int $replacement_cost = 1, int $deletion_cost = 1): int {}
1359
1360/* link.c */
1361
1362#if defined(HAVE_SYMLINK) || defined(PHP_WIN32)
1363/** @refcount 1 */
1364function readlink(string $path): string|false {}
1365
1366function linkinfo(string $path): int|false {}
1367
1368function symlink(string $target, string $link): bool {}
1369
1370function link(string $target, string $link): bool {}
1371#endif
1372
1373/* mail.c */
1374
1375function mail(string $to, string $subject, string $message, array|string $additional_headers = [], string $additional_params = ""): bool {}
1376
1377/* math.c */
1378
1379function abs(int|float $num): int|float {}
1380
1381function ceil(int|float $num): float {}
1382
1383function floor(int|float $num): float {}
1384
1385function round(int|float $num, int $precision = 0, int $mode = PHP_ROUND_HALF_UP): float {}
1386
1387function sin(float $num): float {}
1388
1389function cos(float $num): float {}
1390
1391function tan(float $num): float {}
1392
1393function asin(float $num): float {}
1394
1395function acos(float $num): float {}
1396
1397function atan(float $num): float {}
1398
1399function atanh(float $num): float {}
1400
1401function atan2(float $y, float $x): float {}
1402
1403function sinh(float $num): float {}
1404
1405function cosh(float $num): float {}
1406
1407function tanh(float $num): float {}
1408
1409function asinh(float $num): float {}
1410
1411function acosh(float $num): float {}
1412
1413function expm1(float $num): float {}
1414
1415function log1p(float $num): float {}
1416
1417function pi(): float {}
1418
1419function is_finite(float $num): bool {}
1420
1421function is_nan(float $num): bool {}
1422
1423function intdiv(int $num1, int $num2): int {}
1424
1425function is_infinite(float $num): bool {}
1426
1427function pow(mixed $num, mixed $exponent): int|float|object {}
1428
1429function exp(float $num): float {}
1430
1431function log(float $num, float $base = M_E): float {}
1432
1433function log10(float $num): float {}
1434
1435function sqrt(float $num): float {}
1436
1437function hypot(float $x, float $y): float {}
1438
1439function deg2rad(float $num): float {}
1440
1441function rad2deg(float $num): float {}
1442
1443function bindec(string $binary_string): int|float {}
1444
1445function hexdec(string $hex_string): int|float {}
1446
1447function octdec(string $octal_string): int|float {}
1448
1449/** @refcount 1 */
1450function decbin(int $num): string {}
1451
1452/** @refcount 1 */
1453function decoct(int $num): string {}
1454
1455/** @refcount 1 */
1456function dechex(int $num): string {}
1457
1458/** @refcount 1 */
1459function base_convert(string $num, int $from_base, int $to_base): string {}
1460
1461/** @refcount 1 */
1462function number_format(float $num, int $decimals = 0, ?string $decimal_separator = ".", ?string $thousands_separator = ","): string {}
1463
1464function fmod(float $num1, float $num2): float {}
1465
1466function fdiv(float $num1, float $num2): float {}
1467
1468/* microtime.c */
1469
1470#ifdef HAVE_GETTIMEOFDAY
1471/** @refcount 1 */
1472function microtime(bool $as_float = false): string|float {}
1473
1474/**
1475 * @return array<string, int>|float
1476 * @refcount 1
1477 */
1478function gettimeofday(bool $as_float = false): array|float {}
1479#endif
1480
1481#ifdef HAVE_GETRUSAGE
1482/**
1483 * @return array<string, int>|false
1484 * @refcount 1
1485 */
1486function getrusage(int $mode = 0): array|false {}
1487#endif
1488
1489/* pack.c */
1490
1491/** @refcount 1 */
1492function pack(string $format, mixed ...$values): string {}
1493
1494/**
1495 * @return array<int|string, mixed>|false
1496 * @refcount 1
1497 */
1498function unpack(string $format, string $string, int $offset = 0): array|false {}
1499
1500/* password.c */
1501
1502/**
1503 * @return array<string, string|array|null>
1504 * @refcount 1
1505 */
1506function password_get_info(string $hash): array {}
1507
1508/** @refcount 1 */
1509function password_hash(string $password, string|int|null $algo, array $options = []): string {}
1510
1511function password_needs_rehash(string $hash, string|int|null $algo, array $options = []): bool {}
1512
1513function password_verify(string $password, string $hash): bool {}
1514
1515function password_algos(): array {}
1516
1517/* proc_open.c */
1518
1519#ifdef PHP_CAN_SUPPORT_PROC_OPEN
1520/**
1521 * @param array $pipes
1522 * @return resource|false
1523 * @refcount 1
1524 */
1525function proc_open(array|string $command, array $descriptor_spec, &$pipes, ?string $cwd = null, ?array $env_vars = null, ?array $options = null) {}
1526
1527/** @param resource $process */
1528function proc_close($process): int {}
1529
1530/** @param resource $process */
1531function proc_terminate($process, int $signal = 15): bool {}
1532
1533/**
1534 * @param resource $process
1535 * @return array<string, bool|int|string>
1536 * @refcount 1
1537 */
1538function proc_get_status($process): array {}
1539#endif
1540
1541/* quot_print.c */
1542
1543/** @refcount 1 */
1544function quoted_printable_decode(string $string): string {}
1545
1546/** @refcount 1 */
1547function quoted_printable_encode(string $string): string {}
1548
1549/* mt_rand.c */
1550
1551function mt_srand(int $seed = UNKNOWN, int $mode = MT_RAND_MT19937): void {}
1552
1553/** @alias mt_srand */
1554function srand(int $seed = UNKNOWN, int $mode = MT_RAND_MT19937): void {}
1555
1556function rand(int $min = UNKNOWN, int $max = UNKNOWN): int {}
1557
1558function mt_rand(int $min = UNKNOWN, int $max = UNKNOWN): int {}
1559
1560function mt_getrandmax(): int {}
1561
1562/** @alias mt_getrandmax */
1563function getrandmax(): int {}
1564
1565/* random.c */
1566
1567/** @refcount 1 */
1568function random_bytes(int $length): string {}
1569
1570function random_int(int $min, int $max): int {}
1571
1572/* soundex.c */
1573
1574/** @refcount 1 */
1575function soundex(string $string): string {}
1576
1577/* streamsfuncs.c */
1578
1579function stream_select(?array &$read, ?array &$write, ?array &$except, ?int $seconds, ?int $microseconds = null): int|false {}
1580
1581/**
1582 * @return resource
1583 * @refcount 1
1584 */
1585function stream_context_create(?array $options = null, ?array $params = null) {}
1586
1587/** @param resource $context */
1588function stream_context_set_params($context, array $params): bool {}
1589
1590/**
1591 * @param resource $context
1592 * @return array<string, mixed>
1593 * @refcount 1
1594 */
1595function stream_context_get_params($context): array {}
1596
1597/** @param resource $context */
1598function stream_context_set_option($context, array|string $wrapper_or_options, ?string $option_name = null, mixed $value = UNKNOWN): bool {}
1599
1600/**
1601 * @param resource $stream_or_context
1602 * @return array<string, mixed>
1603 */
1604function stream_context_get_options($stream_or_context): array {}
1605
1606/** @return resource */
1607function stream_context_get_default(?array $options = null) {}
1608
1609/** @return resource */
1610function stream_context_set_default(array $options) {}
1611
1612/**
1613 * @param resource $stream
1614 * @return resource|false
1615 */
1616function stream_filter_prepend($stream, string $filter_name, int $mode = 0, mixed $params = UNKNOWN) {}
1617
1618/**
1619 * @param resource $stream
1620 * @return resource|false
1621 */
1622function stream_filter_append($stream, string $filter_name, int $mode = 0, mixed $params = UNKNOWN) {}
1623
1624/** @param resource $stream_filter */
1625function stream_filter_remove($stream_filter): bool {}
1626
1627/**
1628 * @param int $error_code
1629 * @param string $error_message
1630 * @param resource|null $context
1631 * @return resource|false
1632 * @refcount 1
1633 */
1634function stream_socket_client(string $address, &$error_code = null, &$error_message = null, ?float $timeout = null, int $flags = STREAM_CLIENT_CONNECT, $context = null) {}
1635
1636/**
1637 * @param int $error_code
1638 * @param string $error_message
1639 * @param resource|null $context
1640 * @return resource|false
1641 * @refcount 1
1642 */
1643function stream_socket_server(string $address, &$error_code = null, &$error_message = null, int $flags = STREAM_SERVER_BIND | STREAM_SERVER_LISTEN, $context = null) {}
1644
1645/**
1646 * @param resource $socket
1647 * @param string $peer_name
1648 * @return resource|false
1649 * @refcount 1
1650 */
1651function stream_socket_accept($socket, ?float $timeout = null, &$peer_name = null) {}
1652
1653/** @param resource $socket */
1654function stream_socket_get_name($socket, bool $remote): string|false {}
1655
1656/**
1657 * @param resource $socket
1658 * @param string|null $address
1659 * @refcount 1
1660 */
1661function stream_socket_recvfrom($socket, int $length, int $flags = 0, &$address = null): string|false {}
1662
1663/** @param resource $socket */
1664function stream_socket_sendto($socket, string $data, int $flags = 0, string $address = ""): int|false {}
1665
1666/**
1667 * @param resource $stream
1668 * @param resource|null $session_stream
1669 */
1670function stream_socket_enable_crypto($stream, bool $enable, ?int $crypto_method = null, $session_stream = null): int|bool {}
1671
1672#ifdef HAVE_SHUTDOWN
1673/** @param resource $stream */
1674function stream_socket_shutdown($stream, int $mode): bool {}
1675#endif
1676
1677#if HAVE_SOCKETPAIR
1678/**
1679 * @return array<int, resource>|false
1680 * @refcount 1
1681 */
1682function stream_socket_pair(int $domain, int $type, int $protocol): array|false {}
1683#endif
1684
1685/**
1686 * @param resource $from
1687 * @param resource $to
1688 */
1689function stream_copy_to_stream($from, $to, ?int $length = null, int $offset = 0): int|false {}
1690
1691/**
1692 * @param resource $stream
1693 * @refcount 1
1694 */
1695function stream_get_contents($stream, ?int $length = null, int $offset = -1): string|false {}
1696
1697/** @param resource $stream */
1698function stream_supports_lock($stream): bool {}
1699
1700/** @param resource $stream */
1701function stream_set_write_buffer($stream, int $size): int {}
1702
1703/**
1704 * @param resource $stream
1705 * @alias stream_set_write_buffer
1706 */
1707function set_file_buffer($stream, int $size): int {}
1708
1709/** @param resource $stream */
1710function stream_set_read_buffer($stream, int $size): int {}
1711
1712/** @param resource $stream */
1713function stream_set_blocking($stream, bool $enable): bool {}
1714
1715/**
1716 * @param resource $stream
1717 * @alias stream_set_blocking
1718 */
1719function socket_set_blocking($stream, bool $enable): bool {}
1720
1721/**
1722 * @param resource $stream
1723 * @return array<string, mixed>
1724 */
1725function stream_get_meta_data($stream): array {}
1726
1727/**
1728 * @param resource $stream
1729 * @return array<string, mixed>
1730 * @alias stream_get_meta_data
1731 */
1732function socket_get_status($stream): array {}
1733
1734/**
1735 * @param resource $stream
1736 * @refcount 1
1737 */
1738function stream_get_line($stream, int $length, string $ending = ""): string|false {}
1739
1740/** @refcount 1 */
1741function stream_resolve_include_path(string $filename): string|false {}
1742
1743/**
1744 * @return array<int, string>
1745 * @refcount 1
1746 */
1747function stream_get_wrappers(): array {}
1748
1749/**
1750 * @return array<int, string>
1751 * @refcount 1
1752 */
1753function stream_get_transports(): array {}
1754
1755/** @param resource|string $stream */
1756function stream_is_local($stream): bool {}
1757
1758/** @param resource $stream */
1759function stream_isatty($stream): bool {}
1760
1761#ifdef PHP_WIN32
1762/** @param resource $stream */
1763function sapi_windows_vt100_support($stream, ?bool $enable = null): bool {}
1764#endif
1765
1766/** @param resource $stream */
1767function stream_set_chunk_size($stream, int $size): int {}
1768
1769#if HAVE_SYS_TIME_H || defined(PHP_WIN32)
1770/** @param resource $stream */
1771function stream_set_timeout($stream, int $seconds, int $microseconds = 0): bool {}
1772
1773/**
1774 * @param resource $stream
1775 * @alias stream_set_timeout
1776 */
1777function socket_set_timeout($stream, int $seconds, int $microseconds = 0): bool {}
1778#endif
1779
1780/* type.c */
1781
1782function gettype(mixed $value): string {}
1783
1784function get_debug_type(mixed $value): string {}
1785
1786function settype(mixed &$var, string $type): bool {}
1787
1788function intval(mixed $value, int $base = 10): int {}
1789
1790function floatval(mixed $value): float {}
1791
1792/** @alias floatval */
1793function doubleval(mixed $value): float {}
1794
1795function boolval(mixed $value): bool {}
1796
1797function strval(mixed $value): string {}
1798
1799function is_null(mixed $value): bool {}
1800
1801function is_resource(mixed $value): bool {}
1802
1803function is_bool(mixed $value): bool {}
1804
1805function is_int(mixed $value): bool {}
1806
1807/** @alias is_int */
1808function is_integer(mixed $value): bool {}
1809
1810/** @alias is_int */
1811function is_long(mixed $value): bool {}
1812
1813function is_float(mixed $value): bool {}
1814
1815/** @alias is_float */
1816function is_double(mixed $value): bool {}
1817
1818function is_numeric(mixed $value): bool {}
1819
1820function is_string(mixed $value): bool {}
1821
1822function is_array(mixed $value): bool {}
1823
1824function is_object(mixed $value): bool {}
1825
1826function is_scalar(mixed $value): bool {}
1827
1828/** @param string $callable_name */
1829function is_callable(mixed $value, bool $syntax_only = false, &$callable_name = null): bool {}
1830
1831function is_iterable(mixed $value): bool {}
1832
1833function is_countable(mixed $value): bool {}
1834
1835/* uniqid.c */
1836
1837#ifdef HAVE_GETTIMEOFDAY
1838/** @refcount 1 */
1839function uniqid(string $prefix = "", bool $more_entropy = false): string {}
1840#endif
1841
1842/* url.c */
1843
1844/**
1845 * @return int|string|array<string, int|string>|null|false
1846 * @refcount 1
1847 */
1848function parse_url(string $url, int $component = -1): int|string|array|null|false {}
1849
1850/** @refcount 1 */
1851function urlencode(string $string): string {}
1852
1853/** @refcount 1 */
1854function urldecode(string $string): string {}
1855
1856/** @refcount 1 */
1857function rawurlencode(string $string): string {}
1858
1859/** @refcount 1 */
1860function rawurldecode(string $string): string {}
1861
1862/**
1863 * @param resource|null $context
1864 * @return array<int|string, string|array>|false
1865 * @refcount 1
1866 */
1867function get_headers(string $url, bool $associative = false, $context = null): array|false {}
1868
1869/* user_filters.c */
1870
1871/**
1872 * @param resource $brigade
1873 * @refcount 1
1874 */
1875function stream_bucket_make_writeable($brigade): ?object {}
1876
1877/** @param resource $brigade */
1878function stream_bucket_prepend($brigade, object $bucket): void {}
1879
1880/** @param resource $brigade */
1881function stream_bucket_append($brigade, object $bucket): void {}
1882
1883/**
1884 * @param resource $stream
1885 * @refcount 1
1886 */
1887function stream_bucket_new($stream, string $buffer): object {}
1888
1889/**
1890 * @return array<int, string>
1891 * @refcount 1
1892 */
1893function stream_get_filters(): array {}
1894
1895function stream_filter_register(string $filter_name, string $class): bool {}
1896
1897/* uuencode.c */
1898
1899/** @refcount 1 */
1900function convert_uuencode(string $string): string {}
1901
1902/** @refcount 1 */
1903function convert_uudecode(string $string): string|false {}
1904
1905/* var.c */
1906
1907function var_dump(mixed $value, mixed ...$values): void {}
1908
1909/** @refcount 1 */
1910function var_export(mixed $value, bool $return = false): ?string {}
1911
1912function debug_zval_dump(mixed $value, mixed ...$values): void {}
1913
1914/** @refcount 1 */
1915function serialize(mixed $value): string {}
1916
1917function unserialize(string $data, array $options = []): mixed {}
1918
1919function memory_get_usage(bool $real_usage = false): int {}
1920
1921function memory_get_peak_usage(bool $real_usage = false): int {}
1922
1923/* versioning.c */
1924
1925function version_compare(string $version1, string $version2, ?string $operator = null): int|bool {}
1926
1927/* win32/codepage.c */
1928
1929#ifdef PHP_WIN32
1930function sapi_windows_cp_set(int $codepage): bool {}
1931
1932function sapi_windows_cp_get(string $kind = ""): int {}
1933
1934function sapi_windows_cp_conv(int|string $in_codepage, int|string $out_codepage, string $subject): ?string {}
1935
1936function sapi_windows_cp_is_utf8(): bool {}
1937
1938function sapi_windows_set_ctrl_handler(?callable $handler, bool $add = true): bool {}
1939
1940function sapi_windows_generate_ctrl_event(int $event, int $pid = 0): bool {}
1941#endif
1942