Изменение типа PHP - PullRequest
       19

Изменение типа PHP

0 голосов
/ 09 марта 2010

Когда я переместил свои сайты на выделенный сервер из HostGator, некоторые вещи были нарушены, и все они были повреждены, включая приведение типов. Если $ _POST ['var'] равно 0, оно не считается целым числом и не может сравниться с другим целым числом.

Я прошел и ввел int-типы во всех тех разбитых местах на сайте, который нашел, но я уверен, что есть и другие, которых я не нашел Я не очень знаком с конфигурацией PHP.ini, но, возможно, вы и можете сказать мне, как я могу это исправить?

Спасибо

1 Ответ

5 голосов
/ 09 марта 2010

Нет - вы не можете изменить функцию преобразования типов в PHP, но вы можете написать свой код, чтобы лучше справляться с динамическим преобразованием типов в PHP.

Все переменные запроса автоматически обрабатываются как строки. Не видя ваш код, довольно сложно установить, каковы ваши критерии для «провала сравнения».

Если я бегу:

print var_export((0=="0"), true) . "\n";
print var_export(("0"==0), true) . "\n";
print var_export((0==(integer)"0"), true) . "\n";
print var_export((0==="0"), true) . "\n";

Тогда я получу

true
true
true
false

т.е.. единственное время, когда целочисленное сравнение не удается, - это когда я запрашиваю совпадение по типу и значению.

...