VDS за 300р от нашего партнера SpaceWeb
[88]
02 Дек 2011, 13:45

Ноль равен строке

Добрый день!

Либо я сошел с ума, или что. Пишу такое условие.

if('stroka' == 0) echo 'YES!';

И PHP выдаёт YES!. Почему? С каких пор строка равна нулю? Не пустая строка равна True, путая равна False, ноль равняется пусто или False.

Значит по условию (True == False) — ДА? Это бред какой-то.

#php

Комментарии (2)
grom 02.12.2011 16:20

Потому-что при сравнении строки с числом, PHP пытается привести строку к числу, если это удаётся, то он сравнивает числа, если нет, то строка будет нулём или false.

('stroka' == 0) // true
('1stroka' == 0) // false
('2stroka' == 0) // false
+2
Kein 03.02.2012 14:36

Для такого лучше использовать строгое сравнение:

('stroka' === 0) // false
('0' === 0) // false
('0' !== 0) // true
( ((int)'0' )=== 0) // true
// А еще лучше
empty($my_srting)

Такое сравнение (!== и ===) подразумевается что переменные будут сравниваться не с привидением типов, а с их учетом.
0

Добавить комментарий

Войдите, чтобы написать о чем-нибудь...
Вход Регистрация
Web.onRails
Найди ответ на любой вопрос по Веб-разработке!
задать вопрос...
Вы можете разместить Рекламный пост самостоятельно, либо отправив контент по адресу admin@webonrails.ru→ Оплата здесь ←Неоплаченные посты удаляются.
Метки:
Лучшее
[52]
16 Окт 2011, 15:38
Вывести все элементы POST
[просмотров 36580]
[100]
19 Дек 2014, 16:16
User-agent для Internet Explorer 11
[просмотров 36058]
[1]
15 Апр 2021, 08:29
Переполнение памяти Nuxt.js
[просмотров 34853]
[74]
31 мая 2011, 11:48
Python проверка существования переменной
[просмотров 14502]
[125]
21 Июл 2011, 14:04
Python Imaging Library (PIL)
[просмотров 11807]
[4]
10 Окт 2018, 15:33
Как запретить просмотр сайта по IP?
[просмотров 10852]
[50]
31 Дек 2011, 14:57
Cron запускать раз в неделю
[просмотров 8951]

Вести с Хабра