0如果!= 0,则不传递if语句?字符串与字符串比较

时间:2013-05-03 13:35:07

标签: php

我只是修复了一些表单验证,我似乎有一个非常奇怪的问题。

$newsletter = $_POST['newsletter']; // value 0 or 1 is passed from form, as "value"
// input type is radiobuttens

然后我有一个非常简单的

if ($newsletter != "0" || $newsletter != "1") {
    $error_message .= 'Invalid newsletter?<br />';
}

它没有通过这个?我试过了:

if ($newsletter != 0 || $newsletter != 1) {

也没有通过,但就我所知,

将字符串与int进行比较

4 个答案:

答案 0 :(得分:1)

您必须将语句更改为&&

if ($newsletter != "0" && $newsletter != "1") {

这将检查它既不是0也不是1.

答案 1 :(得分:0)

如果是“0”,则不是“1”。如果它是“1”,则不是“0”。所以它总是要么不是零,要么不是一个。没有任何价值可以通过该测试。

如果它不等于“1”它也不等于“0”,则只想返回错误。

答案 2 :(得分:0)

回答评论,您可以这样做:

if(!$newsletter) { $error_message .= 'Invalid newsletter?<br />'; }

答案 3 :(得分:0)

您需要进行AND比较。我假设您要确保只将值0或1传递给脚本。

if ($newsletter != "0" && $newsletter != "1") {
    $error_message .= 'Invalid newsletter?<br />';
}

从0!= 1 OR条件的任何一方都是真的。所以这总是过去了。