Another way to determine PHP_INT_MIN:
<?php
define('PHP_INT_MIN', ~PHP_INT_MAX);
?>
It should work always:
MAX for 8bit-signed: 01111111
MIN for 8bit-signed: 10000000
In 32 bits:
php -r"echo (int)base_convert(str_repeat('1', 31), 2, 10) - PHP_INT_MAX;"
0
<?php echo ~(int)base_convert(str_repeat('1', 31), 2, 10); ?>
-2147483648
Предопределенные константы
Объявленные в ядре константы
Нижеописанные константы объявляются ядром PHP и охватывают PHP, Zend engine и SAPI-модули.
-
PHP_VERSION(string) - Текущая версия PHP в виде строки в формате "major.minor.release[extra]".
-
PHP_MAJOR_VERSION(integer) - Текущая "основная" (major) версия PHP в виде целого числа (например, int(5) для версии "5.2.7-extra"). Доступна начиная с версии PHP 5.2.7.
-
PHP_MINOR_VERSION(integer) - Текущая "промежуточная" версия PHP в виде целого числа (например, int(2) для версии "5.2.7-extra"). Доступна начиная с версии PHP 5.2.7.
-
PHP_RELEASE_VERSION(integer) - Текущая "релиз"-версия (release) PHP в виде целого числа (например, int(7) для версии "5.2.7-extra"). Доступна начиная с версии PHP 5.2.7.
-
PHP_VERSION_ID(integer) - Текущая версия PHP в виде целого числа, ее удобно использовать при сравнениях версиий (например, int(50207) для версии "5.2.7-extra"). Доступна начиная с версии PHP 5.2.7.
-
PHP_EXTRA_VERSION(string) - Текущая "экстра"-версия PHP в виде строки (например, '-extra' для версии "5.2.7-extra"). Обычно используется в различных дистрибутивах для индикации версий пакетов. Доступна начиная с версии PHP 5.2.7.
-
PHP_ZTS(integer) - Доступна начиная с версии PHP 5.2.7.
-
PHP_DEBUG(integer) - Доступна начиная с версии PHP 5.2.7.
-
PHP_MAXPATHLEN(integer) - Максимальная длина файловых имен (включая путь), поддерживаемая данной сборкой PHP. Доступна начиная с версии PHP 5.3.0.
-
PHP_OS(string) -
PHP_SAPI(string) - Серверное API данной сборки PHP. Доступна начиная с версии PHP 4.2.0. Смотрите также php_sapi_name().
-
PHP_EOL(string) - Корректный символ конца строки, используемый на данной платформе. Доступна начиная с версии PHP 4.3.10 и PHP 5.0.2
-
PHP_INT_MAX(integer) - Максимальное целое число, поддерживаемое данной сборкой PHP. Обычно это int(2147483647). Доступно начиная с версии PHP 4.4.0 и PHP 5.0.5
-
PHP_INT_SIZE(integer) - Доступна начиная с версии PHP 4.4.0 и PHP 5.0.5
-
DEFAULT_INCLUDE_PATH(string) -
PEAR_INSTALL_DIR(string) -
PEAR_EXTENSION_DIR(string) -
PHP_EXTENSION_DIR(string) -
PHP_PREFIX(string) - Значение опции "--prefix", указанной при запуске configure. Доступна начиная с версии PHP 4.3.0
-
PHP_BINDIR(string) - Указывает путь установки бинарных файлов.
-
PHP_BINARY(string) - Указывает путь к исполняемым файлам PHP во время выполнения скрипта. Доступна с PHP 5.4.
-
PHP_MANDIR(string) - Указывает путь установки страниц документации man. Доступна, начиная с версии PHP 5.3.7.
-
PHP_LIBDIR(string) -
PHP_DATADIR(string) -
PHP_SYSCONFDIR(string) -
PHP_LOCALSTATEDIR(string) -
PHP_CONFIG_FILE_PATH(string) -
PHP_CONFIG_FILE_SCAN_DIR(string) -
PHP_SHLIB_SUFFIX(string) - Суффикс, используемый для динамически линкуемых библиотек, такой как "so" (характерный для большинства Unix-систем) или "dll" (Windows). Доступен начиная с версии PHP 4.3.0
-
PHP_OUTPUT_HANDLER_START(integer) -
PHP_OUTPUT_HANDLER_CONT(integer) -
PHP_OUTPUT_HANDLER_END(integer) -
E_ERROR(integer) - Константа, указывающая уровень сообщений об ошибках
-
E_WARNING(integer) -
E_PARSE(integer) -
E_NOTICE(integer) -
E_CORE_ERROR(integer) -
E_CORE_WARNING(integer) -
E_COMPILE_ERROR(integer) -
E_COMPILE_WARNING(integer) -
E_USER_ERROR(integer) -
E_USER_WARNING(integer) -
E_USER_NOTICE(integer) -
E_DEPRECATED(integer) - Доступна начиная с версии PHP 5.3.0
-
E_USER_DEPRECATED(integer) - Доступна начиная с версии PHP 5.3.0
-
E_ALL(integer) -
E_STRICT(integer) - Доступна начиная с версии PHP 5.0.0
-
__COMPILER_HALT_OFFSET__(integer) - Доступна начиная с версии PHP 5.1.0
-
TRUE(boolean) - Смотрите раздел Булев тип.
-
FALSE(boolean) - Смотрите раздел Булев тип.
-
NULL(boolean) - Смотрите Null.
Смотрите также: Магические константы.
Стандартные предопределенные константы
Все константы, входящие в состав ядра расширений, теперь определены в PHP по умолчанию.
soywiz at gmail dot com
19-Jan-2009 03:32
isonomia
08-May-2008 05:18
As PHP_INT_MAX is only available since PHP 4.4.0 and PHP 5.0.5 here is a function that should enable sensible values on most machines (16,32 & 64bit):-
<?php
function get_int_max()
{
$max=0x7fff;
$probe = 0x7fffffff;
while ($max == ($probe>>16))
{
$max = $probe;
$probe = ($probe << 16) + 0xffff;
}
return $max;
}
if (!defined('PHP_INT_MAX'))
{
define ('PHP_INT_MAX', get_int_max());
}
define ('PHP_INT_MIN', (int)(PHP_INT_MAX+1));
?>
monky at kymp dot net
12-Jan-2008 11:55
You can get minimum integer size by adding 1 to PHP_INT_MAX. Just remember to use casting.
<?php
echo (int)(PHP_INT_MAX+1);
?>
Tea Bore
28-Sep-2005 12:09
Use get_defined_constants() to retrieve these constants.
<?php
print '<pre>';
print_r(get_defined_constants());
print '</pre>';
?>
