PEAR/ValidFunctionName: fix uninitialized string offset error #2028
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.
When a function name would contain more than one subsequent underscore, the
explode()
call will create entries containing an empty string in the$nameBits
array.The proposed fix will remove those empty entries before testing each
$bit
.(
array_filter()
called without callback will remove everything which after juggling would evaluate tofalse
).Note: The resulting suggested
$newName
for the function will no longer contain a double underscore either.If it would be desired to allow the double underscore, the alternative would be to change the
if ($bit{0} !== strtoupper($bit{0}))
condition toif ($bit !== '' && $bit{0} !== strtoupper($bit{0}))
. This would also require an adjustment in the inner loop which creates the new package name.Includes unit test.
Fixes #2027