Php &引用;“真的”;还是正确,哪个更合适
我有一个技术问题需要专家的建议。我在数据库中有一个字符串“true”的数据。但是当我检索它来测试条件时,哪一个更适合使用,即使它们都工作Php &引用;“真的”;还是正确,哪个更合适,php,conditional,Php,Conditional,我有一个技术问题需要专家的建议。我在数据库中有一个字符串“true”的数据。但是当我检索它来测试条件时,哪一个更适合使用,即使它们都工作 if ($data == true) 或 我的直觉是使用“true”来测试存储的值是否为字符串,当数据库值存储为布尔值时,使用不带引号的true。但我想和你们确认一下 谢谢…如果它是一个字符串,那么$data==“true”就是您想要的 表达式($data==true)相当于($data),因此即使$data==“false”是字符串,它也将计算为true,
if ($data == true)
或
我的直觉是使用“true”来测试存储的值是否为字符串,当数据库值存储为布尔值时,使用不带引号的true。但我想和你们确认一下
谢谢…如果它是一个字符串,那么
$data==“true”
就是您想要的
表达式
($data==true)
相当于($data)
,因此即使$data==“false”是字符串,它也将计算为true
,如果它是字符串,那么$data==“true”
就是您想要的
表达式($data==true)
相当于($data)
,因此即使$data==“false”得到确认,它的计算结果也将是true
,至少几乎是这样。您也可以检查数据类型,但是在PHP中,您需要使用=
操作符:
if ($data === TRUE) # boolean
if ($data === "true") # string
它被称为,它比较值和类型。通常很有帮助。证实,至少几乎是这样。您也可以检查数据类型,但是在PHP中,您需要使用=
操作符:
if ($data === TRUE) # boolean
if ($data === "true") # string
它被称为,它比较值和类型。通常很有用。需要了解的重要情况是,如果值被假定为false,那么数据库中的值将是什么
如果数据库返回“false”
,并且您选中$val==true
和$val==true
,则只有后者将提供正确的结果
您可能需要咨询,以确保您了解您要检查的内容
此外,数据库是否有可能返回以下内容之一
"true"
"True"
"TRUE"
"TrUe"
只需对数据库值进行规范化或清理(理想情况下,将二进制值存储在布尔字段中,这样就没有必要了。需要了解的重要情况是,如果该值被假定为false,则该值将来自数据库
如果数据库返回“false”
,并且您选中$val==true
和$val==true
,则只有后者将提供正确的结果
您可能需要咨询,以确保您了解您要检查的内容
此外,数据库是否有可能返回以下内容之一
"true"
"True"
"TRUE"
"TrUe"
只需规范化或清理数据库值(理想情况下,将二进制值存储在布尔字段中,这样就没有必要了。“false”==true
为true
如果您的数据库中有一列的值只有“true”或“false”,则效率低下。请将该列转换为tinyint(或bool)
否则,在将数据库从数据库中拔出时,应考虑将代码值>“true”< /COD>和<代码>“false”<代码>转换为<代码> true < /COD>和<代码> false <代码>的布尔值。
<代码>“false”=true < /COD>是正确的。< /P>
如果您的数据库中有一列的值只有“true”或“false”,则效率低下。请将该列转换为tinyint(或bool)
否则,当你把它们从数据库中拔出时,你应该考虑将代码值>“真”和<代码>“false”<代码>转换为<代码> true < /COD>和<代码> false <代码>的布尔值。这是你想要的,虽然它们都会起作用。为了清楚起见,我建议第二个
您可以使用交互式shell在命令上测试这一点
php -a
Interactive shell
php > $x = "true";
php > echo ($x == true) ? "True!" : "oops";
True!
php > echo ($x == "true") ? "True!" : "oops";
True!
php > echo ($x === "true") ? "True!" : "oops";
True!
php > echo ($x === true) ? "True!" : "oops";
oops
请注意==
的效果。由于值是一个字符串,因此在使用==
时,它们并不相等。如果值在数据库中以字符串形式存储,则第二个(If($data=“true”)
)是您想要的,尽管它们都可以工作。为了清晰起见,我建议使用第二个
您可以使用交互式shell在命令上测试这一点
php -a
Interactive shell
php > $x = "true";
php > echo ($x == true) ? "True!" : "oops";
True!
php > echo ($x == "true") ? "True!" : "oops";
True!
php > echo ($x === "true") ? "True!" : "oops";
True!
php > echo ($x === true) ? "True!" : "oops";
oops
请注意==
的效果。由于值是字符串,因此在使用==
时,它们不相等