Php 尽管if语句为false,但仍执行代码
我有以下代码:Php 尽管if语句为false,但仍执行代码,php,if-statement,Php,If Statement,我有以下代码: if ($Type != "DEA" and $VA != "Allowed" and $VolSess != 1) { $max_rows = max($CMSReg_num_rows); if ($max_rows == 0) { mail($to, $subject, $body); header('Location: '.bloginfo('home_url').'/profile'); } } 我的问题是,尽
if ($Type != "DEA" and $VA != "Allowed" and $VolSess != 1) {
$max_rows = max($CMSReg_num_rows);
if ($max_rows == 0) {
mail($to, $subject, $body);
header('Location: '.bloginfo('home_url').'/profile');
}
}
我的问题是,尽管if语句是假的,但还是发送了一封电子邮件,并且只发送了一封电子邮件。代码的其余部分没有执行,即没有重定向。当我注释掉mail()函数时,它不会发送电子邮件
当我添加此代码时:
if ($VA == "Allowed") {
echo "VA = " . $VA;
}
if ($VolSess == 1) {
echo "VolSess = " . $VolSess;
}
我得到这个输出:
VA = Allowed VolSess = 1
因此我知道if语句中的条件为false。尝试:
if ($Type != 'DEA' && $VA != 'Allowed' && $VolSess != 1)
{
$max_rows = max($CMSReg_num_rows);
if ($max_rows === 0)
{
mail($to, $subject, $body);
header('Location: ' . bloginfo('home_url') . '/profile');
}
}
编辑
上面的方法是有效的,但原始问题代码也是有效的。。。问题在别处
<?php
$Type = 'foo';
$VA = 'Allowed';
$VolSess = 1;
if ($Type != 'DEA' and $VA != 'Allowed' and $VolSess != 1)
{
$max_rows = 0;
if ($max_rows === 0)
{
echo 'Orig True';
}
}
else
{
echo 'fine?';
}
if ($Type != 'DEA' && $VA != 'Allowed' && $VolSess != 1)
{
$max_rows = 0;
if ($max_rows === 0)
{
echo 'Second True';
}
}
else
{
echo 'fine?';
}
?>
两者都打印“罚款”,表示您的错误在代码的其他地方。请尝试:
if ($Type != 'DEA' && $VA != 'Allowed' && $VolSess != 1)
{
$max_rows = max($CMSReg_num_rows);
if ($max_rows === 0)
{
mail($to, $subject, $body);
header('Location: ' . bloginfo('home_url') . '/profile');
}
}
编辑
上面的方法是有效的,但原始问题代码也是有效的。。。问题在别处
<?php
$Type = 'foo';
$VA = 'Allowed';
$VolSess = 1;
if ($Type != 'DEA' and $VA != 'Allowed' and $VolSess != 1)
{
$max_rows = 0;
if ($max_rows === 0)
{
echo 'Orig True';
}
}
else
{
echo 'fine?';
}
if ($Type != 'DEA' && $VA != 'Allowed' && $VolSess != 1)
{
$max_rows = 0;
if ($max_rows === 0)
{
echo 'Second True';
}
}
else
{
echo 'fine?';
}
?>
两者都打印“罚款”,表示您的错误在代码的其他地方。请尝试:
if ($Type != 'DEA' && $VA != 'Allowed' && $VolSess != 1)
{
$max_rows = max($CMSReg_num_rows);
if ($max_rows === 0)
{
mail($to, $subject, $body);
header('Location: ' . bloginfo('home_url') . '/profile');
}
}
编辑
上面的方法是有效的,但原始问题代码也是有效的。。。问题在别处
<?php
$Type = 'foo';
$VA = 'Allowed';
$VolSess = 1;
if ($Type != 'DEA' and $VA != 'Allowed' and $VolSess != 1)
{
$max_rows = 0;
if ($max_rows === 0)
{
echo 'Orig True';
}
}
else
{
echo 'fine?';
}
if ($Type != 'DEA' && $VA != 'Allowed' && $VolSess != 1)
{
$max_rows = 0;
if ($max_rows === 0)
{
echo 'Second True';
}
}
else
{
echo 'fine?';
}
?>
两者都打印“罚款”,表示您的错误在代码的其他地方。请尝试:
if ($Type != 'DEA' && $VA != 'Allowed' && $VolSess != 1)
{
$max_rows = max($CMSReg_num_rows);
if ($max_rows === 0)
{
mail($to, $subject, $body);
header('Location: ' . bloginfo('home_url') . '/profile');
}
}
编辑
上面的方法是有效的,但原始问题代码也是有效的。。。问题在别处
<?php
$Type = 'foo';
$VA = 'Allowed';
$VolSess = 1;
if ($Type != 'DEA' and $VA != 'Allowed' and $VolSess != 1)
{
$max_rows = 0;
if ($max_rows === 0)
{
echo 'Orig True';
}
}
else
{
echo 'fine?';
}
if ($Type != 'DEA' && $VA != 'Allowed' && $VolSess != 1)
{
$max_rows = 0;
if ($max_rows === 0)
{
echo 'Second True';
}
}
else
{
echo 'fine?';
}
?>
两者都打印“很好”,这意味着您的错误在代码的其他地方。请在
elseif($VA == "Allowed"){}
试着在
elseif($VA == "Allowed"){}
试着在
elseif($VA == "Allowed"){}
试着在
elseif($VA == "Allowed"){}
和
与&&
相比有一个不同的值,因此表达式的计算结果与您预期的不一样
("$Type" != "DEA" and $VA != "Allowed" and $VolSess != 1)
应该是
(("$Type" != "DEA") and ($VA != "Allowed") and ($VolSess != 1))
或
让它像你期望的那样工作。这是一个很容易被忽略的小错误/bug。
和
与&
相比有一个不同之处,因此表达式的计算结果与您预期的不一样
("$Type" != "DEA" and $VA != "Allowed" and $VolSess != 1)
应该是
(("$Type" != "DEA") and ($VA != "Allowed") and ($VolSess != 1))
或
让它像你期望的那样工作。这是一个很容易被忽略的小错误/bug。
和
与&
相比有一个不同之处,因此表达式的计算结果与您预期的不一样
("$Type" != "DEA" and $VA != "Allowed" and $VolSess != 1)
应该是
(("$Type" != "DEA") and ($VA != "Allowed") and ($VolSess != 1))
或
让它像你期望的那样工作。这是一个很容易被忽略的小错误/bug。
和
与&
相比有一个不同之处,因此表达式的计算结果与您预期的不一样
("$Type" != "DEA" and $VA != "Allowed" and $VolSess != 1)
应该是
(("$Type" != "DEA") and ($VA != "Allowed") and ($VolSess != 1))
或
让它像你期望的那样工作。这是一个容易被忽视的小错误/错误。- 尝试使用WordPress
在模具
之后,并将302作为第二个参数添加到header()
函数中header()
- 使用
ini\u集启用错误报告('display\u errors',true);错误报告(-1)代码>在PHP代码之上
- 尝试使用WordPress
在模具
之后,并将302作为第二个参数添加到header()
函数中header()
- 使用
ini\u集启用错误报告('display\u errors',true);错误报告(-1)代码>在PHP代码之上
- 尝试使用WordPress
在模具
之后,并将302作为第二个参数添加到header()
函数中header()
- 使用
ini\u集启用错误报告('display\u errors',true);错误报告(-1)代码>在PHP代码之上
- 尝试使用WordPress
在模具
之后,并将302作为第二个参数添加到header()
函数中header()
- 使用
ini\u集启用错误报告('display\u errors',true);错误报告(-1)代码>在PHP代码之上
告诉我们您在进行这些更改后看到了什么。尝试
var\u dump()
这两种方法……代码中没有提到VS=
。我不认为我们了解了全部情况。从if中转储所有变量,您就会找到解决方案您不应该引用只包含变量的字符串。不要写“$Type”
,只要写$Type
@Ali就行了。不要猜测出了什么问题,听上面的第一条评论,转储变量,自己完成逻辑。两种方法都试试var\u dump()
,代码中没有提到VS=
。我不认为我们了解了全部情况。从if中转储所有变量,您就会找到解决方案您不应该引用只包含变量的字符串。不要写“$Type”
,只要写$Type
@Ali就行了。不要猜测出了什么问题,听上面的第一条评论,转储变量,自己完成逻辑。两种方法都试试var\u dump()
,代码中没有提到VS=
。我不认为我们了解了全部情况。从if中转储所有变量,您就会找到解决方案您不应该引用只包含变量的字符串。不要写“$Type”
,只要写$Type
@Ali就行了。不要猜测出了什么问题,听上面的第一条评论,转储变量,自己完成逻辑。两种方法都试试var\u dump()
,代码中没有提到VS=
。我不认为我们了解了全部情况。从if中转储所有变量,您就会找到解决方案您不应该引用只包含变量的字符串。不要写“$Type”
,只要写$Type
@Ali不要猜测出了什么问题,听上面的第一条评论,转储变量,自己完成逻辑。@Fabio用&&
代替和有三个变化,这个问题最重要的一个是“and”和“and&&”开关。