If ($codepro == false)
349 сообщений
#10 лет назад
Здравствуйте, коллеги. Уже целые сутки бьюсь над обработкой платежа через Яндекс.Всё встало на проверке наличия кода протекции на платеже.
Яндекс Деньги присылает ответ false - это значит, что платеж без кода протекции и мы будем обрабатывать этот платеж, иначе просто завершаем выполнение скрипта.
<?php
$codepro = $_POST;
echo $codepro; //Выводит false
if ($codepro == false) {
echo "Платеж без кода протекции, обрабатываем платеж";
}
else {
echo "Платеж с кодом протекции, завершение скрипта.";
}
?>
В результате получаю ответ "Платеж с кодом протекции, завершение скрипта.", почему?
Как так получается, что false не равно false?
6863 сообщения
#10 лет назад
Если echo выводит не пустое место, а false, то в переменной находится строка 'false', которая в бинарном виде ну никак не false. Короче, $codepro == 'false', с кавычками
575 сообщений
#10 лет назад
Важно помнить о типизировании, приводите переменные обязательно к нужному типу перед началом работы.
349 сообщений
575 сообщений
#10 лет назад
WebAir, да пхп сам умеет определять. Но правила хорошего тона говорят что нужно обязательно программисту указывать где это важно (int) (string) (boolean)чтоб точно получить тот тип, который нужен.
3562 сообщения
#10 лет назад
Ключевые словаПриведение типов, string, boolean
можно сразу про
== и === прочитать, может быть полезно в будущем.