php-compiler

Capability matrix

Auto-generated by script/capability-matrix.php. Do not edit by hand.

Builtin functions

Function VM JIT AOT Module Notes
abs yes yes yes standard JIT PHPT; AOT PHPT
addslashes yes yes yes standard JIT PHPT; AOT PHPT
array_combine yes yes yes standard AOT PHPT
array_fill yes yes yes standard JIT PHPT; AOT PHPT
array_filter yes yes yes standard JIT PHPT; AOT PHPT
array_flip yes yes yes standard JIT PHPT; AOT PHPT
array_key_exists yes yes yes standard JIT PHPT; AOT PHPT
array_keys yes yes yes standard JIT PHPT; AOT PHPT
array_map yes yes yes standard JIT PHPT; AOT PHPT
array_merge yes yes yes standard JIT PHPT; AOT PHPT
array_pop yes yes yes standard JIT PHPT; AOT PHPT
array_product yes yes yes standard JIT PHPT; AOT PHPT
array_push yes yes yes standard doc: VM only; JIT PHPT
array_reverse yes yes yes standard JIT PHPT; AOT PHPT
array_search yes yes yes standard AOT PHPT
array_shift yes yes yes standard JIT PHPT; AOT PHPT
array_slice yes yes yes standard JIT PHPT; AOT PHPT
array_sum yes yes yes standard JIT PHPT; AOT PHPT
array_unique yes yes yes standard JIT PHPT; AOT PHPT
array_unshift yes yes yes standard JIT PHPT; AOT PHPT
array_values yes yes yes standard JIT PHPT; AOT PHPT
atan2 yes yes yes standard JIT PHPT; AOT PHPT
base64_decode yes yes yes standard JIT PHPT; AOT PHPT
base64_encode yes yes yes standard JIT PHPT; AOT PHPT
basename yes yes yes standard AOT PHPT
bin2hex yes yes yes standard JIT PHPT; AOT PHPT
bindec yes yes yes standard  
boolval yes yes yes standard AOT PHPT
ceil yes yes yes standard  
chmod yes yes yes standard JIT PHPT; AOT PHPT
chr yes yes yes standard  
chunk_split yes yes yes standard AOT PHPT
compact yes yes yes standard  
copy yes yes yes standard JIT PHPT; AOT PHPT
cos yes yes yes standard  
count yes yes yes standard JIT PHPT; AOT PHPT
crc32 yes yes yes standard JIT PHPT; AOT PHPT
date yes yes yes standard  
decbin yes yes yes standard  
dechex yes yes yes standard  
decoct yes yes yes standard  
define yes no no standard not implemented for JIT; use literal name and value (folded at compile time); AOT PHPT
defined yes yes yes standard  
deg2rad yes yes yes standard  
dirname yes yes yes standard AOT PHPT
doubleval yes yes yes standard JIT PHPT; AOT PHPT
exp yes yes yes standard  
explode yes yes yes standard doc: VM only; JIT PHPT; AOT PHPT
extract yes yes yes standard  
fclose yes no no standard doc: VM only; not implemented for JIT in this compiler build
file_exists yes yes yes standard JIT PHPT; AOT PHPT
file_get_contents yes yes yes standard JIT PHPT; AOT PHPT
file_put_contents yes yes yes standard JIT PHPT; AOT PHPT
filemtime yes yes yes standard JIT PHPT; AOT PHPT
fileperms yes yes yes standard JIT PHPT; AOT PHPT
filesize yes yes yes standard JIT PHPT; AOT PHPT
filetype yes yes yes standard JIT PHPT; AOT PHPT
filter_input yes yes yes standard AOT PHPT
filter_var yes yes yes standard AOT PHPT
floatval yes yes yes standard AOT PHPT
floor yes yes yes standard  
fmod yes yes yes standard  
fopen yes no no standard doc: VM only; not implemented for JIT in this compiler build
fread yes no no standard doc: VM only; not implemented for JIT in this compiler build
fwrite yes yes yes standard JIT PHPT
getallheaders yes yes yes standard JIT PHPT; AOT PHPT
getenv yes yes yes standard JIT PHPT; AOT PHPT
gettype yes yes yes standard  
glob yes yes yes standard AOT PHPT
gmdate yes yes yes standard JIT PHPT; AOT PHPT
hash yes yes yes standard JIT PHPT; AOT PHPT
hash_hmac yes yes yes standard JIT PHPT; AOT PHPT
header yes yes yes standard AOT PHPT
header_list yes yes yes standard AOT PHPT
header_remove yes yes yes standard AOT PHPT
hex2bin yes yes yes standard AOT PHPT
hexdec yes yes yes standard  
htmlspecialchars yes yes yes standard AOT PHPT
http_response_code yes yes yes standard JIT PHPT; AOT PHPT
hypot yes yes yes standard AOT PHPT
implode yes yes yes standard JIT PHPT; AOT PHPT
in_array yes yes yes standard JIT PHPT; AOT PHPT
intdiv yes yes yes standard  
intval yes yes yes standard JIT PHPT; AOT PHPT
is_array yes yes yes types JIT PHPT
is_bool yes yes yes types JIT PHPT
is_dir yes yes yes standard JIT PHPT; AOT PHPT
is_double yes yes yes types  
is_executable yes yes yes standard JIT PHPT; AOT PHPT
is_file yes yes yes standard JIT PHPT; AOT PHPT
is_finite yes yes yes standard  
is_float yes yes yes types JIT PHPT
is_infinite yes yes yes standard  
is_int yes yes yes types JIT PHPT
is_integer yes yes yes types  
is_link yes yes yes standard JIT PHPT; AOT PHPT
is_long yes yes yes types  
is_nan yes yes yes standard  
is_null yes yes yes types JIT PHPT
is_numeric yes yes yes standard  
is_object yes yes yes types  
is_readable yes yes yes standard JIT PHPT; AOT PHPT
is_scalar yes yes yes standard  
is_string yes yes yes types JIT PHPT
is_writable yes yes yes standard JIT PHPT; AOT PHPT
join yes yes yes standard JIT PHPT; AOT PHPT
json_encode yes yes yes standard JIT PHPT; AOT PHPT
lcfirst yes yes yes standard JIT PHPT; AOT PHPT
log yes yes yes standard  
ltrim yes yes yes standard JIT PHPT; AOT PHPT
max yes yes yes standard  
mb_strlen yes yes yes types JIT PHPT
min yes yes yes standard  
mkdir yes yes yes standard JIT PHPT; AOT PHPT
nl2br yes yes yes standard JIT PHPT; AOT PHPT
number_format yes yes yes standard JIT PHPT; AOT PHPT
ob_end_flush yes no no standard doc: VM only; not implemented for JIT in this compiler build
ob_get_clean yes no no standard doc: VM only; not implemented for JIT in this compiler build
ob_get_level yes no no standard doc: VM only; not implemented for JIT in this compiler build
ob_start yes no no standard doc: VM only; not implemented for JIT in this compiler build
octdec yes yes yes standard  
ord yes yes yes standard  
parse_url yes yes yes standard JIT PHPT; AOT PHPT
password_hash yes no no standard doc: VM only; not implemented for JIT in this compiler build
password_verify yes no no standard doc: VM only; not implemented for JIT in this compiler build
pathinfo yes yes yes standard JIT PHPT; AOT PHPT
phpc_deploy_path yes yes yes standard AOT PHPT
pi yes yes yes standard  
pow yes yes yes standard JIT PHPT; AOT PHPT
preg_match yes yes yes standard JIT PHPT; AOT PHPT
preg_quote yes yes yes standard JIT PHPT; AOT PHPT
putenv yes yes yes standard AOT PHPT
quotemeta yes yes yes standard JIT PHPT; AOT PHPT
rad2deg yes yes yes standard  
random_bytes yes yes yes standard JIT PHPT; AOT PHPT
range yes yes yes standard  
rawurldecode yes yes yes standard JIT PHPT; AOT PHPT
rawurlencode yes yes yes standard JIT PHPT; AOT PHPT
readfile yes yes yes standard AOT PHPT
readlink yes yes yes standard JIT PHPT; AOT PHPT
realpath yes yes yes standard AOT PHPT
rename yes yes yes standard JIT PHPT; AOT PHPT
rmdir yes yes yes standard JIT PHPT; AOT PHPT
round yes yes yes standard  
rtrim yes yes yes standard JIT PHPT; AOT PHPT
scandir yes yes yes standard AOT PHPT
setcookie yes yes yes standard JIT PHPT; AOT PHPT
shell_exec yes yes yes standard  
sin yes yes yes standard  
sizeof yes yes yes standard JIT PHPT; AOT PHPT
sort yes yes yes standard JIT PHPT; AOT PHPT
sprintf yes yes yes standard JIT PHPT; AOT PHPT
sqrt yes yes yes standard  
str_contains yes yes yes standard AOT PHPT
str_ends_with yes yes yes standard AOT PHPT
str_pad yes yes yes standard AOT PHPT
str_repeat yes yes yes standard AOT PHPT
str_replace yes yes yes standard JIT PHPT; AOT PHPT
str_rot13 yes yes yes standard AOT PHPT
str_shuffle yes yes yes standard JIT PHPT; AOT PHPT
str_split yes yes yes standard JIT PHPT; AOT PHPT
str_starts_with yes yes yes standard AOT PHPT
strcasecmp yes yes yes standard AOT PHPT
strchr yes yes yes standard  
strcmp yes yes yes standard  
strcspn yes yes yes standard AOT PHPT
strip_tags yes yes yes standard JIT PHPT; AOT PHPT
stripos yes yes yes standard JIT PHPT; AOT PHPT
stripslashes yes yes yes standard JIT PHPT; AOT PHPT
stristr yes yes yes standard AOT PHPT
strlen yes yes yes types JIT PHPT; AOT PHPT
strncasecmp yes yes yes standard AOT PHPT
strncmp yes yes yes standard  
strpbrk yes yes yes standard JIT PHPT; AOT PHPT
strpos yes yes yes standard JIT PHPT; AOT PHPT
strrchr yes yes yes standard JIT PHPT; AOT PHPT
strrev yes yes yes standard JIT PHPT; AOT PHPT
strrpos yes yes yes standard JIT PHPT; AOT PHPT
strspn yes yes yes standard AOT PHPT
strstr yes yes yes standard AOT PHPT
strtolower yes yes yes standard AOT PHPT
strtoupper yes yes yes standard JIT PHPT; AOT PHPT
strtr yes yes yes standard JIT PHPT; AOT PHPT
strval yes yes yes standard AOT PHPT
substr yes yes yes standard AOT PHPT
substr_count yes yes yes standard AOT PHPT
tan yes yes yes standard  
time yes yes yes standard JIT PHPT; AOT PHPT
touch yes yes yes standard JIT PHPT; AOT PHPT
trim yes yes yes standard JIT PHPT; AOT PHPT
ucfirst yes yes yes standard  
ucwords yes yes yes standard JIT PHPT; AOT PHPT
unlink yes yes yes standard JIT PHPT; AOT PHPT
urldecode yes yes yes standard JIT PHPT; AOT PHPT
urlencode yes yes yes standard JIT PHPT; AOT PHPT
var_export yes yes yes standard  
web_bool yes yes yes standard JIT PHPT; AOT PHPT
web_int yes yes yes standard JIT PHPT; AOT PHPT
web_string yes yes yes standard JIT PHPT; AOT PHPT
wordwrap yes yes yes standard AOT PHPT

Language constructs

See capabilities-syntax.md (generated by script/capability-syntax.php): classes, methods, visibility, instanceof, native user-class link (#568 closed; execute #764), match, arrow functions.

Builtin AOT uses the same LLVM path as JIT unless noted otherwise.