zoukankan      html  css  js  c++  java
  • php && 逻辑与运算符使用说明

    例子:
    !defined('MAGIC_QUOTES_GPC') && define('MAGIC_QUOTES_GPC', get_magic_quotes_gpc());

    o(︶︿︶)o 唉,很晕,今天问了N多的人。终于把“&&”东西给弄明白怎么回事了

    运算符都没有判断就那样写什么意思,哎,原来如果前面的为假。后面的语句就不执行了。免得我们还费劲的写if

    这样多简单。。。

    //简单说明,如果前面的判断为假后面的则不执行,如果是真,继续执行下面的定义常量操作。

    逻辑运算符
    例子名称结果
    $a and $b And(逻辑与) TRUE,如果 $a 与 $b 都为 TRUE
    $a or $b Or(逻辑或) TRUE,如果 $a 或 $b 任一为 TRUE
    $a xor $b Xor(逻辑异或) TRUE,如果 $a 或 $b 任一为 TRUE,但不同时是。
    ! $a Not(逻辑非) TRUE,如果 $a 不为 TRUE
    $a && $b And(逻辑与) TRUE,如果 $a 与 $b 都为 TRUE
    $a || $b Or(逻辑或) TRUE,如果 $a 或 $b 任一为 TRUE


    Example #1 逻辑运算符示例

    复制代码 代码如下:

    <?php
    // 下面的 foo() 不会被调用,因为它们被运算符“短路”了。
    $a = (false && foo());
    $b = (true || foo());
    $c = (false and foo());
    $d = (true or foo());
    // "||" 的优先级比 "or" 高
    $e = false || true; // $e 被赋值为 (false || true),结果为 true
    $f = false or true; // $f 被赋值为 false [Altair注:"=" 的优先级比 "or" 高]
    var_dump($e, $f);
    // "&&" 的优先级比 "and" 高
    $g = true && false; // $g 被赋值为 (true && false),结果为 false
    $h = true and false; // $h 被赋值为 true [Altair注:"=" 的优先级比 "and" 高]
    var_dump($g, $h);
    ?>


    上例的输出类似于:
    bool(true)
    bool(false)
    bool(false)
    bool(true)

    Another example that might help.

    <?php
    (isset($panelemail) && !empty($panelemail) ? $panelemail : $userdata['email']);
    ?>
    returns the userdata email address, but this

    <?php
    (isset($panelemail) AND !empty($panelemail) ? $panelemail : $userdata['email']);
    ?>
    returns false.

    The reason is that the two types of ands have a different order of precedence. "&&" is higher than "AND", and the "?:" operator just happens to come between the two. Also, since "||" (or) is actually higher than "AND," you should never mix &&s and ||s with ANDs and ORs without paretheses.

    For example:

    <?php
    true && false || false
    ?>
    returns false, but

    <?php
    true AND false || false
    ?>
    returns true.

  • 相关阅读:
    centos yum 安装nginx 后增加模块
    mysql 设置不了短串密码怎么办 You must reset your password using ALTER USER statement before executing this statement.
    Centos7 安装mysql后登录提示:Access denied for user 'root'@'localhost'
    mysql安装历程
    yum.rpm,repo源
    MySql-Server和MySql-Client的关系
    阿里云JKD镜像
    关于字符编码
    Dockerfile编写制作centos7.7+php5.6+nginx镜像
    PHP中常见日期、月份、时间戳列表(strtotime、date、mktime的用法)
  • 原文地址:https://www.cnblogs.com/wang1204/p/5644834.html
Copyright © 2011-2022 走看看