迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > PHP >

PHP 中的松散和严格相等检查

作者:迹忆客 最近更新:2023/03/27 浏览次数:

本文将解释如何在 PHP 中执行松散和严格的相等检查。

对于松散的相等检查,你将使用一些内置的检查运算符,例如相等运算符 == 和不相等运算符!=

此外,对于严格的相等检查,你将使用这些运算符的严格版本。


PHP 中的松散相等检查

PHP 中的松散相等检查使用双重等号 ==,而不是等号!=。两个运算符都被认为是松散的。

那是因为他们没有考虑比较变量的数据类型。因此,整数形式的一个将等于字符串格式的一个。

我们有三个检查都将返回 true。第一个检查比较字符串格式的零和一个数字。使用相等运算符,PHP 将返回 true。

equality 运算符考虑值而不是数据类型。False 和零将在第二次相等检查中返回 true,因为 false 在计算方面意味着零。

但是在这里,如果需要考虑 false 和 0 的数据类型,相等性检查是不够的。

NULL 和 false 之间的最终检查应该返回 false,因为 NULL 意味着没有值。

虽然 false 表示该值存在,但它是空值或零值。但是,相等性检查返回 true。

<?php
    $zero_integer = 0;
    $zero_string = '0';
    $boolean_false = false;
    $null_value = NULL;

    echo "<h1>Loose Equality Check</h1>";

    if ($zero_integer == $zero_string) {
        echo "<strong>First check</strong>: Both " . $zero_integer . " and " . $zero_string . " are equal by value";
    }

    echo "<br />";

    if ($zero_integer == $boolean_false) {
        echo "<strong>Second check</strong>: Both " . $zero_integer . " and Boolean false are equal";
    }

    echo "<br />";

    if ($boolean_false == $null_value) {
        echo "<strong>Third check</strong>: Equality check says Boolean false and NULL are equal";
	}
?>

输出:

Loose Equality Check
First check: Both 0 and 0 are equal by value
Second check: Both 0 and Boolean false are equal
Third check: Equality check says Boolean false and NULL are equal

PHP 中的松散不等于检查

与松散相等检查一样,松散不相等检查在比较时不考虑数据类型。因此,你可以获得意想不到的结果。

我们的下一个代码示例基于前面的代码示例。但是,在这里,我们使用松散的、不相等的检查来执行比较。

所有检查都将返回 false。这是因为松散的不等于运算符考虑变量的值而不是数据类型。

<?php
    $zero_integer = 0;
    $zero_string = '0';
    $boolean_false = false;
    $null_value = NULL;

    echo "<h1>Loose Not Equal Check</h1>";

    if ($zero_integer != $zero_string) {
        echo "This statement will not print";
    } else {
        // This code will run
        echo "Loose not equal thinks zero integer and zero string should be equal";
    }

    echo "<br />";

    if ($zero_integer != $boolean_false) {
        echo "This statement will not print";
    } else {
        echo "Loose not equal consider zero integer and Boolean false as equal";
    }

    echo "<br />";

    if ($boolean_false != $null_value) {
        echo "This statement will not print";
    } else {
        echo "Loose not equal thinks a null value and Boolean false are equal";
    }
?>

以下输出来自每个比较的 else 块:

Loose Not Equal Check
Loose not equal thinks zero integer and zero string should be equal
Loose not equal consider zero integer and Boolean false as equal
Loose not equal thinks a null value and Boolean false are equal

PHP 中严格的相等检查

顾名思义,严格相等检查在比较期间是严格的。这意味着严格相等检查变量的值和数据类型是否相等。

通过严格的相等性检查,一种字符串格式在数量上永远不会等于一。此外,布尔 false 将不等于零。

在我们的下一个代码块比较期间,所有检查都将返回有关变量的适当信息。

<?php
    $zero_integer = 0;
    $zero_string = '0';
    $boolean_false = false;
    $null_value = NULL;

    echo "<h1>Strict Equality Check</h1>";

    if ($zero_integer === $zero_string) {
        echo "This statement will not print";
    } else {
        echo "Zero integer and zero string are not equal.";
    }

    echo "<br />";

    if ($zero_integer === $boolean_false) {
        echo "This statement will not print";
    } else {
        echo "Zero integer and Boolean false are not the same.";
    }

    echo "<br />";

    if ($boolean_false === $null_value) {
        echo "This statement will not print";
    } else {
        echo "NULL and Boolean false are not the same.";
    }
?

以下输出来自每个比较的 else 块:

Strict Equality Check
Zero integer and zero string are not equal
Zero integer and Boolean false are not the same
NULL and Boolean false are not the same

PHP 中的严格不等于检查

当比较数据和变量不等于时,严格的不等于检查将返回正确的结果。

当你运行下一个代码块时,你将获得有关比较的正确结果。

<?php
    $zero_integer = 0;
    $zero_string = '0';
    $boolean_false = false;
    $null_value = NULL;

    // The space at the beginning of
    // the string is not a mistake.
    $comparison_end_quote = " do not belong to the same data type.";

    echo "<h1>Strict Not Equal Check</h1>";

    if ($zero_integer !== $zero_string) {
        echo "True. Zero integer and zero String" . $comparison_end_quote;
    }

    echo "<br />";

    if ($zero_integer !== $boolean_false) {
        echo "True. Boolean false and zero Integer" . $comparison_end_quote;
    }

    echo "<br />";

    if ($boolean_false !== $null_value) {
        echo "True. Boolean is not NULL.";
    }
?>

输出:

Strict Not Equal Check
True. Zero integer and zero String do not belong to the same data type.
True. Boolean false and zero Integer do not belong to the same data type.
True. Boolean is not NULL.

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

如何在 PHP 中获取时间差的分钟数

发布时间:2023/03/29 浏览次数:183 分类:PHP

本文介绍了如何在 PHP 中获取时间差的分钟数,包括 date_diff()函数和数学公式。它包括 date_diff()函数和数学公式。

PHP 中的重定向

发布时间:2023/03/29 浏览次数:136 分类:PHP

本教程演示了如何将用户从页面重定向到 PHP 中的其他页面

PHP 分页

发布时间:2023/03/29 浏览次数:66 分类:PHP

本教程介绍如何在 PHP 中对数据库行进行分页

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便