mirror of
https://github.com/php/php-src.git
synced 2026-03-26 17:22:15 +01:00
We return all integers that can be represented as such by PHP as integers, and only those that exceed the possible range as strings. On builds which represent integers with 64 bits, the range check is unnecessary and might cause code checkers to complain, so we skip this special casing via the preprocessor according to <http://git.php.net/?p=php-src.git;a=commit;h=99d087e5>.
27 lines
628 B
PHP
27 lines
628 B
PHP
--TEST--
|
|
Bug #73333 (2147483647 is fetched as string)
|
|
--SKIPIF--
|
|
<?php
|
|
if (!extension_loaded('sqlite3')) die('skip sqlite3 extension not available');
|
|
?>
|
|
--FILE--
|
|
<?php
|
|
if (!defined('PHP_INT_MIN')) define('PHP_INT_MIN', -PHP_INT_MAX-1);
|
|
|
|
$db = new SQLite3(':memory:');
|
|
$db->exec('CREATE TABLE foo (bar INT)');
|
|
foreach ([PHP_INT_MIN, PHP_INT_MAX] as $value) {
|
|
$db->exec("INSERT INTO foo VALUES ($value)");
|
|
}
|
|
|
|
$res = $db->query('SELECT bar FROM foo');
|
|
while (($row = $res->fetchArray(SQLITE3_NUM)) !== false) {
|
|
echo gettype($row[0]), PHP_EOL;
|
|
}
|
|
?>
|
|
===DONE===
|
|
--EXPECT--
|
|
integer
|
|
integer
|
|
===DONE===
|