for PHP: validate input and support integers up to PHP_INT_MAX #11
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.
use regular php division if safe (<=0x7FFFFFFF ), else use bcdiv if available (because it's faster), and finally fallback to an userland php division based on an algorithm from http://justinparrtech.com/JustinParr-Tech/an-algorithm-for-arbitrary-precision-integer-division
i can't guarantee that the algorithm is flawless, but it passes all my own tests (without using bcmath), i can't get it to fail, i have tested a lot of large integers, including PHP_INT_MAX.
note, i have not extensively tested 32bit php support, due to the fact that i dont have a 32bit system. ( i have barely tested it using ideone.com , which uses 32bit php), but because i use normal PHP division if the $num <= 0x7FFFFFFF , i can't imagine it making any difference.