Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / [PHP] Почему выполняется условие / 12 сообщений из 12, страница 1 из 1
24.11.2014, 19:02
    #38815499
Valerii_me
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Почему выполняется условие
Простое условие, но не могу понять почему оно выполняется, когда не должно этого делать.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
//это размерный ряд?
function validsizes($min, $max) {
    //numeric
    $a = intval($min);
    $b = intval($max);
    if (($a == $min) && ($b == $max)) return ($min < $max); //условие которое не должно выполняться, когда $min, $max не цифры
 ...
}

validsizes('XL', '6XL');
...
Рейтинг: 0 / 0
24.11.2014, 19:08
    #38815504
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Почему выполняется условие
Valerii_me,

А интересно,как ты представляешь себе перевод "XL" в целое зачение?
Тут глянь для начала http://php.net/manual/ru/function.intval.php
...
Рейтинг: 0 / 0
24.11.2014, 19:15
    #38815514
Valerii_me
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Почему выполняется условие
DarkMaster, в том и смысл что если это не число то не выполнять правую часть сравнения

т.е. не выполнятся следующее условие
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
function validsizes($min, $max) {
$a = intval($min); //$a = 0
$b = intval($max); //$b = 6
if (($a == $min) && ($b == $max)) //<---- условие которое не должно выполняться, когда $min, $max не цифры
/*
if (0 == 'XL') && (6 == '6XL')) //<---- условие которое не должно выполняться, А ОНО ВЫПОЛНЯЕТСЯ!
*/
 ...
}

validsizes('XL', '6XL');
...
Рейтинг: 0 / 0
24.11.2014, 19:26
    #38815523
Valerii_me
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Почему выполняется условие
Может это БАГ?
...
Рейтинг: 0 / 0
24.11.2014, 19:31
    #38815525
ScareCrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Почему выполняется условие
Код: php
1.
if (($a === $min) && ($b === $max))
...
Рейтинг: 0 / 0
24.11.2014, 19:31
    #38815526
ScareCrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Почему выполняется условие
Код: php
1.
var_dump(6 == '6XL')
...
Рейтинг: 0 / 0
24.11.2014, 19:35
    #38815530
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Почему выполняется условие
ScareCrow,

Еще is_numeric() есть для проверки... intvar() может разные магические 0/1 возвращать в зависимости от сочетания звезд на небе.
...
Рейтинг: 0 / 0
24.11.2014, 19:35
    #38815531
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Почему выполняется условие
http://ru2.php.net/manual/ru/language.operators.comparison.php string, resource или number string, resource или number Строки и ресурсы переводятся в числа , обычная математика
...
Рейтинг: 0 / 0
24.11.2014, 19:39
    #38815534
Valerii_me
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Почему выполняется условие
vkle, Строки и ресурсы переводятся в числа, обычная математика
ЭВРИКА!!!
Спасибо, теперь понял. Кстати http://www.sql.ru/forum/1126817/virusnyy-iframe-v-php - и снова полностью с вами согласен!
...
Рейтинг: 0 / 0
24.11.2014, 19:41
    #38815535
Valerii_me
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Почему выполняется условие
Сделал как предложил ScareCrow. Спасибо. Закрыто.
...
Рейтинг: 0 / 0
24.11.2014, 19:44
    #38815538
Yaroslav22
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Почему выполняется условие
а что вы хотите в конечном результате получить? Потому как если функция ничего не возвращает, то это как бы тоже false (null) если результат работы функции чему либо присваивать.
Так же как и если return ($min < $max) в случае не соответствия условия вернет false.

Пока не совсем понятно: а правда ли функция не так работает как ожидалось.
...
Рейтинг: 0 / 0
24.11.2014, 19:47
    #38815542
Valerii_me
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Почему выполняется условие
Yaroslav22, это проблемная часть кода, дальше сравнения функции validsizes() с различным набором данных
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / [PHP] Почему выполняется условие / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]