[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Ошибка?
SlavaFr
Прошу учесть, что это не вопрос, а просто примечание...

Сегодня столкнулся с проблемой в пхп 7.

'a128' == 0;
выдало true

так же заменив букву а на другие буквы, к примеру 'k128' == 0 всёровно выдавало true.

проблему решили заменив равенство на функцию empty....
Но всёровно прикольно.... Пришлось понервничать, пока не разобрался....




_____________
↓↓↓↓↓↓↓↓↓↓
ответ может быть здесь
или в mysql_error();
SlavaFr
попробывал только что в других версиях здесь http://phptester.net/
Весело, что в 5.5 и в 5.6 тот же результат, что и в пхп 7 smile.gif

_____________
↓↓↓↓↓↓↓↓↓↓
ответ может быть здесь
или в mysql_error();
Kusss
(int)a128 == 0
Вроде так и должно быть.
Arh
Старый добрый нюанс.

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
chee
$a == 0

вы серьезно проверяете так на пустоту?

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
SlavaFr
Цитата (chee @ 19.06.2017 - 14:10)
вы серьезно проверяете так на пустоту?

нет, на 0 или "0".
Цитата (Kusss @ 19.06.2017 - 13:13)
(int)a128 == 0

я понял... просто как то неожидал такого кастинга на интегер.... Переработался наверное smile.gif


_____________
↓↓↓↓↓↓↓↓↓↓
ответ может быть здесь
или в mysql_error();
inpost
SlavaFr
Забавно, я в моём курсе в первом уроке это всё поведение работы чисел показывал laugh.gif
При сравнении числа со строкой приводится вторая сторона (строка) к числу. Итого (int)"a1" == 0.
Можешь ещё пару тестов сделать:
echo (int)'1a1';
echo (int)'2121a';
echo (int)'aaa333';

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
sergeiss
Цитата (SlavaFr @ 19.06.2017 - 15:38)
'a128' == 0;
выдало true

Вообще-то, это стандартное поведение ПХП. И описано оно в разделе преобразование строк в числа
Если не ошибаюсь, это всегда было так, с самого появления ПХП. 7-я версия тут никак не выделена.

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

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

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

user posted image
SlavaFr
всё... мне уже стыдно smile.gif
наверное 30° жары влияет на серое вещество. user posted image

_____________
↓↓↓↓↓↓↓↓↓↓
ответ может быть здесь
или в mysql_error();
chee
SlavaFr, зачем вообще проверять что там 0 или "0"?


_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
SlavaFr
Цитата (chee @ 20.06.2017 - 08:10)
зачем вообще проверять что там 0 или "0"?

потому, что в этом случае надо действовать по другому.

_____________
↓↓↓↓↓↓↓↓↓↓
ответ может быть здесь
или в mysql_error();
Быстрый ответ:

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