Category
Regression: · php-src-strict · ext/dom soft-null E_DEPRECATED parameter names
Problem
Several DOM* / DOMNamedNodeMap / DOMImplementation string args soft-deprecate null→string via DomClassMethod::stringArg() / JIT VmDomJitDispatch::stringArg() with the default $paramName = 'value'. Zend/php-src cites the stub parameter names ($qualifiedName, $filename, $feature, $version, $localName, $data, …).
Probed 2026-08-17 — host Zend PHP 8.2.32 vs php bin/vm.php.
| Repro |
Zend 8.2+ |
VM (2026-08-17) |
$attrs->getNamedItem(null) |
Deprecated $qualifiedName |
Deprecated $value |
$doc->load(null) / loadHTMLFile(null) / saveHTMLFile(null) |
Deprecated $filename |
Deprecated $value |
$node->isSupported(null, null) |
Deprecated $feature + $version |
Deprecated $value + $value |
(new DOMImplementation)->hasFeature(null, null) |
Deprecated $feature + $version |
Deprecated $value + $value |
$el->getAttributeNode(null) |
Deprecated $qualifiedName |
Deprecated $value |
$el->getAttributeNodeNS(null, null) |
Deprecated $localName (#2) |
Deprecated $value (#2) |
$attrs->getNamedItemNS(null, null) |
Deprecated $localName (#2) |
Deprecated $value (#2) |
$frag->appendXML(null) |
Deprecated $data |
Deprecated $value |
$impl->createDocument(null, null) |
Deprecated $qualifiedName (#2) |
Deprecated $value (#2) |
php-src reference
PHP implementation target
ext/dom/DomClassMethod.php callers — pass Zend stub $paramName into stringArg() (stop relying on default 'value')
ext/dom/VmDomJitDispatch.php — mirror names on JIT/AOT stringArg sites
- No new
runtime/*.c
Repro
./script/docker-exec.sh -- bash -lc 'php test/repro/maintainer_gap_dom_soft_null_param_names.php'
./script/docker-exec.sh -- bash -lc 'php bin/vm.php test/repro/maintainer_gap_dom_soft_null_param_names.php'
Done when
Category
Regression:· php-src-strict · ext/dom soft-null E_DEPRECATED parameter namesProblem
Several
DOM*/DOMNamedNodeMap/DOMImplementationstring args soft-deprecate null→string viaDomClassMethod::stringArg()/ JITVmDomJitDispatch::stringArg()with the default$paramName = 'value'. Zend/php-src cites the stub parameter names ($qualifiedName,$filename,$feature,$version,$localName,$data, …).Probed 2026-08-17 — host Zend PHP 8.2.32 vs
php bin/vm.php.$attrs->getNamedItem(null)$qualifiedName$value$doc->load(null)/loadHTMLFile(null)/saveHTMLFile(null)$filename$value$node->isSupported(null, null)$feature+$version$value+$value(new DOMImplementation)->hasFeature(null, null)$feature+$version$value+$value$el->getAttributeNode(null)$qualifiedName$value$el->getAttributeNodeNS(null, null)$localName(#2)$value(#2)$attrs->getNamedItemNS(null, null)$localName(#2)$value(#2)$frag->appendXML(null)$data$value$impl->createDocument(null, null)$qualifiedName(#2)$value(#2)php-src reference
ext/dom/php_dom.stub.php— parameter names on DOMNamedNodeMap / DOMDocument / DOMNode / DOMElement / DOMImplementation / DOMDocumentFragmentext/dom/namednodemap.c—getNamedItem/getNamedItemNSPHP implementation target
ext/dom/DomClassMethod.phpcallers — pass Zend stub$paramNameintostringArg()(stop relying on default'value')ext/dom/VmDomJitDispatch.php— mirror names on JIT/AOT stringArg sitesruntime/*.cRepro
Done when