Allow NULL

A questionnaire on how to implement the Allow NULL RFC.

Results from Tim Düsterhus (back)

Maintain Open Source, cannot vote

How should PHP 9 work?
  1. NULL triggers a Fatal Error for everyone (forget about backwards compatibility).
  2. NULL triggers a Fatal Error for everyone, but update some parameters to explicitly allow NULL (e.g. `?string`).
  3. NULL triggers a Fatal Error with strict_types=1, otherwise use coercion (like how integers can be coerced to a string).

Which of the following parameters should continue to Accept NULL, or should NULL trigger a Fatal Error?

Encoding/Decoding

urlencode(string:string) Accept NULL
urldecode(string:string) Fatal Error
rawurlencode(string:string) Accept NULL
rawurldecode(string:string) Fatal Error
base64_encode(string:string) Accept NULL
base64_decode(string:string, strict:bool) Fatal Error
utf8_encode(string:string) Fatal Error
utf8_decode(string:string) Fatal Error
bin2hex(string:string) Fatal Error
hex2bin(string:string) Fatal Error
bindec(binary_string:string) Fatal Error
hexdec(hex_string:string) Fatal Error
octdec(octal_string:string) Fatal Error
base_convert(num:string, from_base:int, to_base:int) Fatal Error
htmlspecialchars(string:string, flags:int, encoding:string, double_encode:bool) Accept NULL
htmlspecialchars_decode(string:string, flags:int) Fatal Error
html_entity_decode(string:string, flags:int, encoding:string) Fatal Error
htmlentities(string:string, flags:int, encoding:string, double_encode:bool) Accept NULL
addslashes(string:string) Accept NULL
addcslashes(string:string, characters:string) Accept NULL
stripslashes(string:string) Fatal Error
stripcslashes(string:string) Fatal Error
quotemeta(string:string) Don't Mind
quoted_printable_decode(string:string) Don't Mind
quoted_printable_encode(string:string) Don't Mind
escapeshellarg(arg:string) Fatal Error
curl_escape(handle:CurlHandle, string:string) Don't Mind
curl_unescape(handle:CurlHandle, string:string) Don't Mind
convert_uuencode(string:string) Don't Mind
zlib_encode(data:string, encoding:int, level:int) Fatal Error
gzdeflate(data:string, level:int, encoding:int) Fatal Error
gzencode(data:string, level:int, encoding:int) Fatal Error
gzcompress(data:string, level:int, encoding:int) Fatal Error
gzwrite(_stream:?_, data:string, length:int) Fatal Error
gzputs(_stream:?_, data:string, length:int) Fatal Error
deflate_add(context:DeflateContext, data:string, flush_mode:int) Fatal Error
inflate_add(context:InflateContext, data:string, flush_mode:int) Fatal Error
unpack(format:string, string:string, offset:int) Fatal Error
iconv_mime_encode(field_name:string, field_value:string, options:array) Don't Mind
iconv_mime_decode(string:string, mode:int, encoding:string) Don't Mind
iconv(from_encoding:string, to_encoding:string, string:string) Don't Mind
iconv(from_encoding:string, to_encoding:string, string:string) Don't Mind
iconv(from_encoding:string, to_encoding:string, string:string) Don't Mind
sodium_bin2hex(string:string) Fatal Error
sodium_hex2bin(string:string, ignore:string) Fatal Error
sodium_hex2bin(string:string, ignore:string) Fatal Error
sodium_bin2base64(string:string, id:int) Fatal Error
sodium_base642bin(string:string, id:int, ignore:string) Fatal Error
sodium_base642bin(string:string, id:int, ignore:string) Fatal Error
mb_convert_encoding(string:array|string, to_encoding:string, from_encoding:array|string|null) Don't Mind
mb_detect_encoding(string:string, encodings:array|string|null, strict:bool) Don't Mind
mb_encode_mimeheader(string:string, charset:string, transfer_encoding:string, newline:string, indent:int) Don't Mind
mb_decode_mimeheader(string:string) Don't Mind
mb_encode_numericentity(string:string, map:array, encoding:string, hex:bool) Don't Mind
mb_decode_numericentity(string:string, map:array, encoding:string) Don't Mind
transliterator_transliterate(transliterator:Transliterator|string, string:string, start:int, end:int) Don't Mind
mysqli_real_escape_string(mysql:mysqli, string:string) Don't Mind
mysqli_escape_string(mysql:mysqli, string:string) Don't Mind
pg_escape_string(_connection:?_, string:string) Don't Mind
pg_escape_bytea(_connection:?_, string:string) Don't Mind
pg_unescape_bytea(string:string) Don't Mind
pg_escape_literal(_connection:?_, string:string) Don't Mind
pg_copy_to(connection:PgSql\Connection, table_name:string, separator:string, null_as:string) Don't Mind
pg_copy_from(connection:PgSql\Connection, table_name:string, rows:array, separator:string, null_as:string) Don't Mind

String Modification

strtoupper(string:string) Fatal Error
strtolower(string:string) Fatal Error
ucfirst(string:string) Fatal Error
lcfirst(string:string) Fatal Error
ucwords(string:string, separators:string) Fatal Error
trim(string:string, characters:string) Accept NULL
ltrim(string:string, characters:string) Accept NULL
rtrim(string:string, characters:string) Accept NULL
chop(string:string, characters:string) Don't Mind
str_rot13(string:string) Fatal Error
str_shuffle(string:string) Fatal Error
substr(string:string, offset:int, length:int) Fatal Error
substr_replace(string:array|string, replace:array|string, offset:array|int, length:array|int|null) Fatal Error
substr_replace(string:array|string, replace:array|string, offset:array|int, length:array|int|null) Fatal Error
substr_count(haystack:string, needle:string, offset:int, length:int) Fatal Error
explode(separator:string, string:string, limit:int) Fatal Error
strcoll(string1:string, string2:string) Don't Mind
strcoll(string1:string, string2:string) Don't Mind
str_split(string:string, length:int) Fatal Error
chunk_split(string:string, length:int, separator:string) Fatal Error
wordwrap(string:string, width:int, break:string, cut_long_words:bool) Fatal Error
strtr(string:string, from:array|string, to:string) Fatal Error
strrev(string:string) Fatal Error
str_replace(search:array|string, replace:array|string, subject:array|string, _count:?_) Fatal Error
str_replace(search:array|string, replace:array|string, subject:array|string, _count:?_) Fatal Error
str_replace(search:array|string, replace:array|string, subject:array|string, _count:?_) Fatal Error
str_ireplace(search:array|string, replace:array|string, subject:array|string, _count:?_) Fatal Error
str_ireplace(search:array|string, replace:array|string, subject:array|string, _count:?_) Fatal Error
str_ireplace(search:array|string, replace:array|string, subject:array|string, _count:?_) Fatal Error
str_repeat(string:string, times:int) Fatal Error Even the empty string is not really useful here.
str_pad(string:string, length:int, pad_string:string, pad_type:int) Fatal Error
nl2br(string:string, use_xhtml:bool) Fatal Error
strip_tags(string:string, allowed_tags:array|string|null) Fatal Error
hebrev(string:string, max_chars_per_line:int) Don't Mind
iconv_substr(string:string, offset:int, length:int, encoding:string) Don't Mind
mb_strtoupper(string:string, encoding:string) Fatal Error
mb_strtolower(string:string, encoding:string) Fatal Error
mb_convert_case(string:string, mode:int, encoding:string) Fatal Error
mb_convert_kana(string:string, mode:string, encoding:string) Fatal Error
mb_convert_kana(string:string, mode:string, encoding:string) Fatal Error
mb_scrub(string:string, encoding:string) Fatal Error
mb_substr(string:string, start:int, length:int, encoding:string) Fatal Error
mb_substr_count(haystack:string, needle:string, encoding:string) Fatal Error
mb_str_split(string:string, length:int, encoding:string) Fatal Error
mb_split(pattern:string, string:string, limit:int) Fatal Error
sodium_pad(string:string, block_size:int) Fatal Error
grapheme_substr(string:string, offset:int, length:int) Don't Mind
grapheme_extract(haystack:string, size:int, type:int, offset:int, _next:?_) Don't Mind

String Position

strpos(haystack:string, needle:string, offset:int) Don't Mind
strrpos(haystack:string, needle:string, offset:int) Don't Mind
stripos(haystack:string, needle:string, offset:int) Don't Mind
strripos(haystack:string, needle:string, offset:int) Don't Mind
iconv_strpos(haystack:string, needle:string, offset:int, encoding:string) Don't Mind
iconv_strrpos(haystack:string, needle:string, encoding:string) Don't Mind
mb_strpos(haystack:string, needle:string, offset:int, encoding:string) Don't Mind
mb_strrpos(haystack:string, needle:string, offset:int, encoding:string) Don't Mind
mb_stripos(haystack:string, needle:string, offset:int, encoding:string) Don't Mind
mb_strripos(haystack:string, needle:string, offset:int, encoding:string) Don't Mind
grapheme_strpos(haystack:string, needle:string, offset:int) Don't Mind
grapheme_strrpos(haystack:string, needle:string, offset:int) Don't Mind
grapheme_stripos(haystack:string, needle:string, offset:int) Don't Mind
grapheme_strripos(haystack:string, needle:string, offset:int) Don't Mind

String Comparison

strcmp(string1:string, string2:string) Fatal Error
strcmp(string1:string, string2:string) Fatal Error
strncmp(string1:string, string2:string, length:int) Fatal Error
strncmp(string1:string, string2:string, length:int) Fatal Error
strcasecmp(string1:string, string2:string) Fatal Error
strcasecmp(string1:string, string2:string) Fatal Error
strncasecmp(string1:string, string2:string, length:int) Fatal Error
strncasecmp(string1:string, string2:string, length:int) Fatal Error
strnatcmp(string1:string, string2:string) Fatal Error
strnatcmp(string1:string, string2:string) Fatal Error
strnatcasecmp(string1:string, string2:string) Fatal Error
strnatcasecmp(string1:string, string2:string) Fatal Error
substr_compare(haystack:string, needle:string, offset:int, length:int, case_insensitive:bool) Fatal Error
str_contains(haystack:string, needle:string) Accept NULL
str_starts_with(haystack:string, needle:string) Accept NULL
str_ends_with(haystack:string, needle:string) Accept NULL
collator_compare(object:Collator, string1:string, string2:string) Don't Mind
collator_compare(object:Collator, string1:string, string2:string) Don't Mind
collator_get_sort_key(object:Collator, string:string) Don't Mind
metaphone(string:string, max_phonemes:int) Don't Mind
soundex(string:string) Fatal Error
levenshtein(string1:string, string2:string, insertion_cost:int, replacement_cost:int, deletion_cost:int) Fatal Error
levenshtein(string1:string, string2:string, insertion_cost:int, replacement_cost:int, deletion_cost:int) Fatal Error
similar_text(string1:string, string2:string, _percent:?_) Fatal Error
similar_text(string1:string, string2:string, _percent:?_) Fatal Error
sodium_compare(string1:string, string2:string) Fatal Error
sodium_compare(string1:string, string2:string) Fatal Error
sodium_memcmp(string1:string, string2:string) Fatal Error
sodium_memcmp(string1:string, string2:string) Fatal Error

String Details

strlen(string:string) Don't Mind
strstr(haystack:string, needle:string, before_needle:bool) Don't Mind
strchr(haystack:string, needle:string, before_needle:bool) Don't Mind
stristr(haystack:string, needle:string, before_needle:bool) Don't Mind
strrchr(haystack:string, needle:string) Don't Mind
strpbrk(string:string, characters:string) Don't Mind
strspn(string:string, characters:string, offset:int, length:int) Don't Mind
strcspn(string:string, characters:string, offset:int, length:int) Don't Mind
strtok(string:string, token:string) Don't Mind
str_word_count(string:string, format:int, characters:string) Don't Mind
count_chars(string:string, mode:int) Don't Mind
iconv_strlen(string:string, encoding:string) Don't Mind
mb_strlen(string:string, encoding:string) Don't Mind
mb_strstr(haystack:string, needle:string, before_needle:bool, encoding:string) Don't Mind
mb_strrchr(haystack:string, needle:string, before_needle:bool, encoding:string) Don't Mind
mb_stristr(haystack:string, needle:string, before_needle:bool, encoding:string) Don't Mind
mb_strrichr(haystack:string, needle:string, before_needle:bool, encoding:string) Don't Mind
mb_strcut(string:string, start:int, length:int, encoding:string) Don't Mind
mb_strwidth(string:string, encoding:string) Don't Mind
mb_strimwidth(string:string, start:int, width:int, trim_marker:string, encoding:string) Don't Mind
mb_strimwidth(string:string, start:int, width:int, trim_marker:string, encoding:string) Don't Mind
grapheme_strlen(string:string) Don't Mind
grapheme_strstr(haystack:string, needle:string, beforeNeedle:bool) Don't Mind
grapheme_stristr(haystack:string, needle:string, beforeNeedle:bool) Don't Mind

RegEx

preg_match(pattern:string, subject:string, _matches:?_, flags:int, offset:int) Don't Mind
preg_match_all(pattern:string, subject:string, _matches:?_, flags:int, offset:int) Don't Mind
preg_replace(pattern:array|string, replacement:array|string, subject:array|string, limit:int, _count:?_) Don't Mind
preg_replace(pattern:array|string, replacement:array|string, subject:array|string, limit:int, _count:?_) Don't Mind
preg_filter(pattern:array|string, replacement:array|string, subject:array|string, limit:int, _count:?_) Don't Mind
preg_filter(pattern:array|string, replacement:array|string, subject:array|string, limit:int, _count:?_) Don't Mind
preg_replace_callback(pattern:array|string, callback:callable, subject:array|string, limit:int, _count:?_, flags:int) Don't Mind
preg_replace_callback_array(pattern:array, subject:array|string, limit:int, _count:?_, flags:int) Don't Mind
preg_split(pattern:string, subject:string, limit:int, flags:int) Don't Mind
preg_quote(str:string, delimiter:string) Don't Mind
mb_ereg(pattern:string, string:string, _matches:?_) Don't Mind
mb_eregi(pattern:string, string:string, _matches:?_) Don't Mind
mb_ereg_replace(pattern:string, replacement:string, string:string, options:string) Don't Mind
mb_ereg_replace(pattern:string, replacement:string, string:string, options:string) Don't Mind
mb_eregi_replace(pattern:string, replacement:string, string:string, options:string) Don't Mind
mb_eregi_replace(pattern:string, replacement:string, string:string, options:string) Don't Mind
mb_ereg_replace_callback(pattern:string, callback:callable, string:string, options:string) Don't Mind
mb_ereg_match(pattern:string, string:string, options:string) Don't Mind
mb_ereg_search_init(string:string, pattern:string, options:string) Don't Mind

Normalising

normalizer_normalize(string:string, form:int) Fatal Error
normalizer_is_normalized(string:string, form:int) Fatal Error
normalizer_get_raw_decomposition(string:string, form:int) Fatal Error

Hashing

hash(algo:string, data:string, binary:bool, options:array) Fatal Error
hash_hmac(algo:string, data:string, key:string, binary:bool) Fatal Error
hash_update(context:HashContext, data:string) Fatal Error
hash_pbkdf2(algo:string, password:string, salt:string, iterations:int, length:int, binary:bool) Fatal Error
crc32(string:string) Fatal Error
md5(string:string, binary:bool) Fatal Error
sha1(string:string, binary:bool) Fatal Error
crypt(string:string, salt:string) Fatal Error

Files

basename(path:string, suffix:string) Fatal Error
dirname(path:string, levels:int) Fatal Error
pathinfo(path:string, flags:int) Fatal Error
fwrite(_stream:?_, data:string, length:int) Fatal Error
fputs(_stream:?_, data:string, length:int) Fatal Error

Output

setcookie(name:string, value:string, expires_or_options:array|int, path:string, domain:string, secure:bool, httponly:bool) Fatal Error
setcookie(name:string, value:string, expires_or_options:array|int, path:string, domain:string, secure:bool, httponly:bool) Fatal Error
setcookie(name:string, value:string, expires_or_options:array|int, path:string, domain:string, secure:bool, httponly:bool) Fatal Error
setrawcookie(name:string, value:string, expires_or_options:array|int, path:string, domain:string, secure:bool, httponly:bool) Fatal Error
setrawcookie(name:string, value:string, expires_or_options:array|int, path:string, domain:string, secure:bool, httponly:bool) Fatal Error
setrawcookie(name:string, value:string, expires_or_options:array|int, path:string, domain:string, secure:bool, httponly:bool) Fatal Error
output_add_rewrite_var(name:string, value:string) Don't Mind

Parsing

parse_url(url:string, component:int) Don't Mind
parse_str(string:string, _result:?_) Don't Mind
mb_parse_str(string:string, _result:?_) Don't Mind
numfmt_parse(formatter:NumberFormatter, string:string, type:int, _offset:?_) Don't Mind
parse_ini_string(ini_string:string, process_sections:bool, scanner_mode:int) Don't Mind
sscanf(string:string, format:string, vars:mixed) Don't Mind
locale_accept_from_http(header:string) Don't Mind
msgfmt_parse(formatter:MessageFormatter, string:string) Don't Mind
msgfmt_parse_message(locale:string, pattern:string, message:string) Don't Mind

CSV

str_getcsv(string:string, separator:string, enclosure:string, escape:string) Fatal Error
str_getcsv(string:string, separator:string, enclosure:string, escape:string) Fatal Error
str_getcsv(string:string, separator:string, enclosure:string, escape:string) Fatal Error
fputcsv(_stream:?_, fields:array, separator:string, enclosure:string, escape:string, eol:string) Fatal Error
fgetcsv(_stream:?_, length:int, separator:string, enclosure:string, escape:string) Fatal Error

Images

imagechar(image:GdImage, font:GdFont|int, x:int, y:int, char:string, color:int) Fatal Error
imagecharup(image:GdImage, font:GdFont|int, x:int, y:int, char:string, color:int) Fatal Error
imagestring(image:GdImage, font:GdFont|int, x:int, y:int, string:string, color:int) Fatal Error
imagestringup(image:GdImage, font:GdFont|int, x:int, y:int, string:string, color:int) Fatal Error
imageftbbox(size:float, angle:float, font_filename:string, string:string, options:array) Fatal Error
imagefttext(image:GdImage, size:float, angle:float, x:int, y:int, color:int, font_filename:string, text:string, options:array) Fatal Error
imagettfbbox(size:float, angle:float, font_filename:string, string:string, options:array) Fatal Error
imagettftext(image:GdImage, size:float, angle:float, x:int, y:int, color:int, font_filename:string, text:string, options:array) Fatal Error

Passwords

password_hash(password:string, algo:string|int|null, options:array) Fatal Error
password_verify(password:string, hash:string) Fatal Error

BC Math

bcadd(num1:string, num2:string, scale:int) Don't Mind
bcadd(num1:string, num2:string, scale:int) Don't Mind
bcsub(num1:string, num2:string, scale:int) Don't Mind
bcsub(num1:string, num2:string, scale:int) Don't Mind
bcmul(num1:string, num2:string, scale:int) Don't Mind
bcmul(num1:string, num2:string, scale:int) Don't Mind
bcdiv(num1:string, num2:string, scale:int) Don't Mind
bcmod(num1:string, num2:string, scale:int) Don't Mind
bcpow(num:string, exponent:string, scale:int) Don't Mind
bcpow(num:string, exponent:string, scale:int) Don't Mind
bcpowmod(num:string, exponent:string, modulus:string, scale:int) Don't Mind
bcpowmod(num:string, exponent:string, modulus:string, scale:int) Don't Mind
bcsqrt(num:string, scale:int) Don't Mind
bccomp(num1:string, num2:string, scale:int) Don't Mind
bccomp(num1:string, num2:string, scale:int) Don't Mind

XML

simplexml_load_string(data:string, class_name:string, options:int, namespace_or_prefix:string, is_prefix:bool) Don't Mind
simplexml_load_string(data:string, class_name:string, options:int, namespace_or_prefix:string, is_prefix:bool) Don't Mind
xml_parser_create_ns(encoding:string, separator:string) Don't Mind
xml_parse(parser:XMLParser, data:string, is_final:bool) Don't Mind
xml_parse_into_struct(parser:XMLParser, data:string, _values:?_, _index:?_) Don't Mind
xmlwriter_set_indent_string(writer:XMLWriter, indentation:string) Don't Mind
xmlwriter_write_attribute(writer:XMLWriter, name:string, value:string) Don't Mind
xmlwriter_write_attribute_ns(writer:XMLWriter, prefix:string, name:string, namespace:string, value:string) Don't Mind
xmlwriter_write_pi(writer:XMLWriter, target:string, content:string) Don't Mind
xmlwriter_write_cdata(writer:XMLWriter, content:string) Don't Mind
xmlwriter_text(writer:XMLWriter, content:string) Don't Mind
xmlwriter_write_raw(writer:XMLWriter, content:string) Don't Mind
xmlwriter_write_comment(writer:XMLWriter, content:string) Don't Mind
xmlwriter_write_dtd(writer:XMLWriter, name:string, publicId:string, systemId:string, content:string) Don't Mind
xmlwriter_write_dtd_element(writer:XMLWriter, name:string, content:string) Don't Mind
xmlwriter_write_dtd_attlist(writer:XMLWriter, name:string, content:string) Don't Mind
xmlwriter_write_dtd_entity(writer:XMLWriter, name:string, content:string, isParam:bool, publicId:string, systemId:string, notationData:string) Don't Mind

PSpell

pspell_new(language:string, spelling:string, jargon:string, encoding:string, mode:int) Don't Mind
pspell_new(language:string, spelling:string, jargon:string, encoding:string, mode:int) Don't Mind
pspell_new(language:string, spelling:string, jargon:string, encoding:string, mode:int) Don't Mind
pspell_new_personal(filename:string, language:string, spelling:string, jargon:string, encoding:string, mode:int) Don't Mind
pspell_new_personal(filename:string, language:string, spelling:string, jargon:string, encoding:string, mode:int) Don't Mind
pspell_new_personal(filename:string, language:string, spelling:string, jargon:string, encoding:string, mode:int) Don't Mind
pspell_check(dictionary:PSpell\Dictionary, word:string) Don't Mind
pspell_suggest(dictionary:PSpell\Dictionary, word:string) Don't Mind
pspell_store_replacement(dictionary:PSpell\Dictionary, misspelled:string, correct:string) Don't Mind
pspell_add_to_personal(dictionary:PSpell\Dictionary, word:string) Don't Mind
pspell_add_to_session(dictionary:PSpell\Dictionary, word:string) Don't Mind
pspell_config_create(language:string, spelling:string, jargon:string, encoding:string) Don't Mind
pspell_config_create(language:string, spelling:string, jargon:string, encoding:string) Don't Mind
pspell_config_create(language:string, spelling:string, jargon:string, encoding:string) Don't Mind
pspell_config_create(language:string, spelling:string, jargon:string, encoding:string) Don't Mind

Sodium

sodium_crypto_aead_aes256gcm_encrypt(message:string, additional_data:string, nonce:string, key:string) Fatal Error
sodium_crypto_aead_aes256gcm_encrypt(message:string, additional_data:string, nonce:string, key:string) Fatal Error
sodium_crypto_aead_aes256gcm_decrypt(ciphertext:string, additional_data:string, nonce:string, key:string) Fatal Error
sodium_crypto_aead_chacha20poly1305_encrypt(message:string, additional_data:string, nonce:string, key:string) Fatal Error
sodium_crypto_aead_chacha20poly1305_encrypt(message:string, additional_data:string, nonce:string, key:string) Fatal Error
sodium_crypto_aead_chacha20poly1305_decrypt(ciphertext:string, additional_data:string, nonce:string, key:string) Fatal Error
sodium_crypto_aead_chacha20poly1305_ietf_encrypt(message:string, additional_data:string, nonce:string, key:string) Fatal Error
sodium_crypto_aead_chacha20poly1305_ietf_encrypt(message:string, additional_data:string, nonce:string, key:string) Fatal Error
sodium_crypto_aead_chacha20poly1305_ietf_decrypt(ciphertext:string, additional_data:string, nonce:string, key:string) Fatal Error
sodium_crypto_aead_xchacha20poly1305_ietf_encrypt(message:string, additional_data:string, nonce:string, key:string) Fatal Error
sodium_crypto_aead_xchacha20poly1305_ietf_encrypt(message:string, additional_data:string, nonce:string, key:string) Fatal Error
sodium_crypto_aead_xchacha20poly1305_ietf_decrypt(ciphertext:string, additional_data:string, nonce:string, key:string) Fatal Error
sodium_crypto_auth(message:string, key:string) Fatal Error
sodium_crypto_auth_verify(mac:string, message:string, key:string) Fatal Error
sodium_crypto_box(message:string, nonce:string, key_pair:string) Fatal Error
sodium_crypto_box_seal(message:string, public_key:string) Fatal Error
sodium_crypto_generichash(message:string, key:string, length:int) Fatal Error
sodium_crypto_generichash(message:string, key:string, length:int) Fatal Error
sodium_crypto_generichash_update(state:string, message:string) Fatal Error
sodium_crypto_secretbox(message:string, nonce:string, key:string) Fatal Error
sodium_crypto_secretstream_xchacha20poly1305_push(state:string, message:string, additional_data:string, tag:int) Fatal Error
sodium_crypto_secretstream_xchacha20poly1305_push(state:string, message:string, additional_data:string, tag:int) Fatal Error
sodium_crypto_secretstream_xchacha20poly1305_pull(state:string, ciphertext:string, additional_data:string) Fatal Error
sodium_crypto_shorthash(message:string, key:string) Fatal Error
sodium_crypto_sign(message:string, secret_key:string) Fatal Error
sodium_crypto_sign_detached(message:string, secret_key:string) Fatal Error
sodium_crypto_sign_open(signed_message:string, public_key:string) Fatal Error
sodium_crypto_sign_verify_detached(signature:string, message:string, public_key:string) Fatal Error
sodium_crypto_stream_xor(message:string, nonce:string, key:string) Fatal Error
sodium_crypto_stream_xchacha20_xor(message:string, nonce:string, key:string) Fatal Error

Stream

stream_socket_sendto(_socket:?_, data:string, flags:int, address:string) Fatal Error
stream_socket_sendto(_socket:?_, data:string, flags:int, address:string) Fatal Error
stream_get_line(_stream:?_, length:int, ending:string) Fatal Error

Socket

socket_write(socket:Socket, data:string, length:int) Fatal Error
socket_send(socket:Socket, data:string, length:int, flags:int) Fatal Error
socket_sendto(socket:Socket, data:string, length:int, flags:int, address:string, port:int) Fatal Error

E-Mail

mail(to:string, subject:string, message:string, additional_headers:array|string, additional_params:string) Fatal Error
mail(to:string, subject:string, message:string, additional_headers:array|string, additional_params:string) Fatal Error
mail(to:string, subject:string, message:string, additional_headers:array|string, additional_params:string) Fatal Error
mail(to:string, subject:string, message:string, additional_headers:array|string, additional_params:string) Fatal Error
mb_send_mail(to:string, subject:string, message:string, additional_headers:array|string, additional_params:string) Fatal Error
mb_send_mail(to:string, subject:string, message:string, additional_headers:array|string, additional_params:string) Fatal Error
mb_send_mail(to:string, subject:string, message:string, additional_headers:array|string, additional_params:string) Fatal Error