[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: зависимость разрядности системы и функций php
zvezda_t
Всем привет.

Скажите, пожалуйста от разрядности системы зависит преобразование с помощью функции (int) ?

Например:
если у меня система 32 - разрядная, то получаю
<?

//2^31:
echo (int)2147483648;// выдает: -2147483648

//(2^31) - 1

echo (int)2147483647;// выдает: 2147483647

//(2^63) - 1

echo (int)9223372036854775807;//выдает: 0

?>


Скажите, пожалуйста, если система 64 разрядная, то функция изменит свое поведение - на больший диапозон?
У кого система 64 разрядная, проверьте пожалуйста, что вернет этот скрипт?

<?

//2^63:
echo (int)9223372036854775808;// что выдает?

//(2^63) - 1

echo (int)9223372036854775807;// что выдает?

//2^31:

echo (int)2147483648;// что выдает?

?>


_____________

Что ты сделал сегодня - для завтра?
"Приидите ко Мне вси труждающиеся и обремененнии и Аз упокою вы, возмите иго Мое на себе и научитеся от Мене яко кроток есмь и смирен сердцем и обрящете покой душам вашим, иго бо Мое благо и бремя Мое легко есть."(Мф. 11:28-30)
Invis1ble
Это зависит не только от системы, но и еще от самого php, насколько я знаю.

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

zvezda_t
Invis1ble, хм... а какой у тебя php?
У меня: php 5.4.11


_____________

Что ты сделал сегодня - для завтра?
"Приидите ко Мне вси труждающиеся и обремененнии и Аз упокою вы, возмите иго Мое на себе и научитеся от Мене яко кроток есмь и смирен сердцем и обрящете покой душам вашим, иго бо Мое благо и бремя Мое легко есть."(Мф. 11:28-30)
Invis1ble
версия тут не причем, я имею в виду то, как он скомпилирован.

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

Invis1ble
по-моему самый простой способ - проверить константу PHP_INT_MAX
var_dump(PHP_INT_MAX); // у меня int(2147483647), значит наверное 32

Могу ошибаться.
ЗЫ. Щас sergeiss все расскажет, он у нас вроде как C-шник.
ЗЫЫ. Хех, пока писал - он вышел из топика :)

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

killer8080
zvezda_t
сразу не увидел тему, отвечал в СМС-ках smile.gif



Спустя 45 секунд killer8080 написал(а):
echo PHP_INT_SIZE;
sergeiss
zvezda_t, я тебя вот сюда http://www.php.net/manual/ru/language.types.integer.php пошлю. Там много чего интересного есть.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
zvezda_t
killer8080, спасибо)
echo PHP_INT_SIZE;// int(4)


Invis1ble, у меня тоже:
var_dump(PHP_INT_MAX); // int(2147483647)


Скажите, пожалуйста - у кого нить выдает большее значение? (у кого установлен 64 битный php ?)

_____________

Что ты сделал сегодня - для завтра?
"Приидите ко Мне вси труждающиеся и обремененнии и Аз упокою вы, возмите иго Мое на себе и научитеся от Мене яко кроток есмь и смирен сердцем и обрящете покой душам вашим, иго бо Мое благо и бремя Мое легко есть."(Мф. 11:28-30)
Aeq
эти константы 100% работают. у меня на рабочем компе 32, на сервере 64, периодически огребаю косяков от этого, например когда в базе кто-то зафигачил unsigned int4, приводить к пхп-инту такое число нельзя на 32-битной машине )))
Aeq
$ php -r 'echo PHP_INT_MAX;'
9223372036854775807
SoMeOnE
на 64 битной выдает
int(9223372036854775807)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.