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