Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我应该为…使用==还是===。。。如果($POST[";var_name";]=';my#u string';),则继续_Php - Fatal编程技术网

Php 我应该为…使用==还是===。。。如果($POST[";var_name";]=';my#u string';),则继续

Php 我应该为…使用==还是===。。。如果($POST[";var_name";]=';my#u string';),则继续,php,Php,我有以下代码正在工作。。但我想确保我没有误报。。。因为PHP在做布尔运算时很有趣。。。我想解释一下 $response = $_POST["response"]; if ($response == '00' || $response == '105'){ //do sth. } 是否应将if块更改为: if ($response === '00' || $response === '105'){ //do sth. } 在php文档中,如果希望它除了检查值之外还检查类型,则只需要===

我有以下代码正在工作。。但我想确保我没有误报。。。因为PHP在做布尔运算时很有趣。。。我想解释一下

$response = $_POST["response"];

if ($response == '00' || $response == '105'){  //do sth. }
是否应将if块更改为:

if ($response === '00' || $response === '105'){  //do sth. }

在php文档中,如果希望它除了检查值之外还检查类型,则只需要===即可

$a == $b    Equal       TRUE if $a is equal to $b after type juggling.
$a === $b   Identical   TRUE if $a is equal to $b, and they are of the same type. 

来源:

从php文档中,您只需要===就可以检查除值之外的类型

$a == $b    Equal       TRUE if $a is equal to $b after type juggling.
$a === $b   Identical   TRUE if $a is equal to $b, and they are of the same type. 

来源:

当您不仅需要比较变量的值,还需要比较类型时,应该使用
=
。因此,我想说,在这种情况下,您肯定应该使用
==


作为一个描述性示例,
1==true
为true,但
1===true
为false。

当您不仅需要对变量的值进行比较,还需要对类型进行比较时,应该使用
==
。因此,我想说,在这种情况下,您肯定应该使用
==

作为一个描述性示例,
1==true
为true,但
1===true
为false

==运算符只是检查左右值是否相同 平等。但是,===操作符(注意额外的“=”)实际上检查 查看左右值是否相等,并检查是否相等 它们是相同的变量类型(比如它们是否都是 布尔、整数等)

因此,如果还需要检查变量类型,则应使用
==

==运算符只是检查左右值是否相同 平等。但是,===操作符(注意额外的“=”)实际上检查 查看左右值是否相等,并检查是否相等 它们是相同的变量类型(比如它们是否都是 布尔、整数等)


因此,如果还需要检查变量类型,则应使用
==

将其与示例可视化:

<?php

var_dump('00' == '00');        // bool(true)
var_dump('00' == '0');         // bool(true)
var_dump('00' == '000000');    // bool(true)
var_dump('105' == '105');      // bool(true)
var_dump('105' == '105.000');  // bool(true)
var_dump('105' == '0x69');     // bool(true)
var_dump('105' == '0105');     // bool(true)

var_dump('00' === '00');       // bool(true)
var_dump('00' === '0');        // bool(false)
var_dump('00' === '000000');   // bool(false)
var_dump('105' === '105');     // bool(true)
var_dump('105' === '105.000'); // bool(false)
var_dump('105' === '0x69');    // bool(false)
var_dump('105' === '0105');    // bool(false)

?>

要使用您的示例将其可视化:

<?php

var_dump('00' == '00');        // bool(true)
var_dump('00' == '0');         // bool(true)
var_dump('00' == '000000');    // bool(true)
var_dump('105' == '105');      // bool(true)
var_dump('105' == '105.000');  // bool(true)
var_dump('105' == '0x69');     // bool(true)
var_dump('105' == '0105');     // bool(true)

var_dump('00' === '00');       // bool(true)
var_dump('00' === '0');        // bool(false)
var_dump('00' === '000000');   // bool(false)
var_dump('105' === '105');     // bool(true)
var_dump('105' === '105.000'); // bool(false)
var_dump('105' === '0x69');    // bool(false)
var_dump('105' === '0105');    // bool(false)

?>


你知道
=
==
之间的区别吗?
$response
的值是字符串还是整数?好问题?它应该是一个字符串…由第三方网站返回的代码..我应该使用类似于数字的东西来确保吗?我最终会使用类似这样的东西:if($response='00'| |$response=='105'){//do sth.}你知道
==
==='code>之间的区别吗?
$response
的值是字符串还是整数?好问题?它应该是一个字符串…由第三方网站返回的代码..我应该使用类似is_numeric的东西来确保吗?我最终会使用类似这样的东西:if($response='00'| |$response==='105'){//do sth.},在这种情况下,你真的不会这么做。基于该链接(好链接,顺便说一句),您只需担心比较返回
0
,这可能被解释为
false
。在本例中,您使用的函数可能不会返回
false
,您正在比较不能与
0
混淆的字符串,因此您应该只使用
=
。这是一个非常好的链接!对于我的瞳孔,我只需要担心三个可能的值0、00和105。所以我想我最终会使用这样的东西:if($response=='00'| |$response=='105')。用==检查0和==检查105。在这种情况下,您实际上不会这样做。基于该链接(好链接,顺便说一句),您只需担心比较返回
0
,这可能被解释为
false
。在本例中,您使用的函数可能不会返回
false
,您正在比较不能与
0
混淆的字符串,因此您应该只使用
=
。这是一个非常好的链接!对于我的瞳孔,我只需要担心三个可能的值0、00和105。所以我想我最终会使用这样的东西:if($response=='00'| |$response=='105')。用==检查0和==检查105。这真的很好!谢谢除了修复这个问题,我会根据你的需要使用它来整型或浮点型。这真的很好!谢谢除了修复这个问题,我还将根据您的需要使用它进行整型或浮点运算