From d3151f7c65d87ee728b8305ecc30b977e2dd6d91 Mon Sep 17 00:00:00 2001 From: David Grudl Date: Mon, 15 Jun 2015 14:08:03 +0200 Subject: [PATCH] DibiTranslator: deprecated support for hex number in strings '0xFF' (BC break) related to PHP7 and https://wiki.php.net/rfc/remove_hex_support_in_numeric_strings --- dibi/libs/DibiTranslator.php | 5 ++++- tests/dibi/DibiTranslator.phpt | 6 ------ 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/dibi/libs/DibiTranslator.php b/dibi/libs/DibiTranslator.php index b385c1e4..b38ee5f5 100644 --- a/dibi/libs/DibiTranslator.php +++ b/dibi/libs/DibiTranslator.php @@ -361,8 +361,11 @@ final class DibiTranslator extends DibiObject return 'NULL'; } elseif (is_string($value) && preg_match('#[+-]?\d++(?:e\d+)?\z#A', $value)) { return $value; // support for long numbers - keep them unchanged + } elseif (is_string($value) && substr($value, 1, 1) === 'x' && is_numeric($value)) { + trigger_error('Support for hex strings has been deprecated.', E_USER_DEPRECATED); + return (string) hexdec($value); } else { - return (string) (int) ($value + 0); + return (string) (int) $value; } case 'f': // float diff --git a/tests/dibi/DibiTranslator.phpt b/tests/dibi/DibiTranslator.phpt index 659c55db..84776ae4 100644 --- a/tests/dibi/DibiTranslator.phpt +++ b/tests/dibi/DibiTranslator.phpt @@ -73,12 +73,6 @@ Assert::same( $conn->translate("SELECT %f", '-.12345678912345678912345678e10') ); -// hex numbers -Assert::same( - reformat('SELECT 17'), - $conn->translate("SELECT %i", '0x11') -); - // invalid input $e = Assert::exception(function() use ($conn) { $conn->translate("SELECT %s", (object) array(123), ', %m', 123);