Conversation
`version_compare()` does a sloppy check for the `$operators` argument which allows arbitrary abbreviations of the supported operators to be accepted. This is both undocumented and unexpected, and could lead to subtle BC breaks, if the order of the comparisions will be changed. Therefore we change to strict comparisons.
Member
|
I could happily add this behaviour to the list of deprecations for PHP 8.1, if that works for you. |
Member
Author
|
@kocsismate, that's also okay for me, but if we want to deprecate, I'd rather deprecate this parameter altogther. We don't support that for similar functions (e.g. |
Member
|
This change looks fine to me for master/8.1, with an added/extended test. This was clearly an implementation bug and not intended behavior. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
version_compare()does a sloppy check for the$operatorsargumentwhich allows arbitrary abbreviations of the supported operators to be
accepted. This is both undocumented and unexpected, and could lead to
subtle BC breaks, if the order of the comparisions will be changed.
Therefore we change to strict comparisons.
Since this comparision behavior is there since PHP 4.3.0 or so, of course, this change would constitute a BC break. Thus I do not actually propose to merge this change, but like to bring that issue to more attention. Maybe we should leave it as is, but document the behavior; maybe we want to get rid of the
$operatorparameter altogether.PS: see also https://bugs.php.net/80503