Several builtins either (a) already match Zend Reflection but still reject named args (BuiltinParamNames gap), or (b) drift on stream-related param names. Probed 2026-07-27 vs host Zend 8.2.32.
<?php
try { var_export(get_html_translation_table(table: HTML_SPECIALCHARS)['"'] ?? null); echo "\n"; }
catch (Throwable $e) { echo get_class($e), ': ', $e->getMessage(), "\n"; }
try { hash_update(context: hash_init('sha1'), data: 'a'); echo "hash_ok\n"; }
catch (Throwable $e) { echo get_class($e), ': ', $e->getMessage(), "\n"; }
try { var_export(ob_get_status(full_status: false)); echo "\n"; }
catch (Throwable $e) { echo get_class($e), ': ', $e->getMessage(), "\n"; }
Category
bug· php-src-strict · named arguments / ReflectionProblem
Several builtins either (a) already match Zend Reflection but still reject named args (
BuiltinParamNamesgap), or (b) drift on stream-related param names. Probed 2026-07-27 vs host Zend 8.2.32.get_html_translation_tabletable,flags,encodingUnknown named parameter $tablehash_updatecontext,dataUnknown named parameter $contexthash_update_filecontext,filename,stream_contextcontext,filename(missing 3rd)stream_context:rejectedhash_update_streamcontext,stream,lengthcontext,handle,lengthstream:rejectedob_get_statusfull_statusUnknown named parameter $full_statusphp-src reference
ext/standard/html.stub.php/basic_functions.stub.php—get_html_translation_table,ob_get_statusext/hash/hash.stub.php—hash_update,hash_update_file,hash_update_streamext/standard/html.c,ext/standard/output.c,ext/hash/hash.cPHP implementation target
lib/BuiltinParamNames.php— add Zend stub maps for all five (include optionalstream_context=/length=where stubs have them)hash_update_streamReflectionhandle→stream; accept 3rd arg onhash_update_fileext/standard/ext/hashPHP; no new CRepro
./script/docker-exec.sh -- bash -lc 'php bin/vm.php test/repro/maintainer_gap_html_hash_ob_reflection_names.php'Done when
hash_update_stream/hash_update_filearity).phptguard(s)