Fix #10033 PHP Fatal error Uncaught TypeError PHP8 #10036
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The
$array
parameter passed toimplode($separator, $array)
wasnull
.Previously in PHP 7 and less, this gave only a
Notice
orWarning
error.In PHP 8+ passing a null array parameter to implode now gives a
FATAL
error and PHP exits because the call matches a different overloaded function signature, expecting anarray
in first position, but it gets theseparator
which is astring
.Description
Fixes bug #10033 when running on PHP 8+
Motivation and Context
PHP 7 and below only emitted a
Notice
orWarning
to the log when you callimplode
with aNULL
for the$array
.PHP 8 and above now will throw an
Exception
and exit PHP because the call signature matches a different overload and the$separator
is passed in where it expects the$array
.How To Test This
See issue.
Basic code example proving this is
FATAL
on PHP 8+Types of changes
Final checklist