• 技术文章 >类库下载 >PHP类库

    PHP运算符

    高洛峰高洛峰2016-10-09 11:21:48原创1096

    运算符

    PHP运算符可以根据操作数的个数分为一元运算符、二元运算符、三元运算符。一元运算符例如!(取反运算符)或++(加一运算符),PHP支持的大多数运算符都是这种二元运算符,例如+、-、*、/等算数运算符,而三元运算符只有一个(?:)。另外按运算符的功能去分类,可以分为:算术运算符、字符串运算符、赋值运算符、比较运算符、逻辑运算符、位运算符和其他运算符。

    算数运算符

    1.png

    在算数运算符中,有个几乎所有程序都拥有的递增和递减规则,如下所示:

    $a++先计算表达式的值,然后自身加1

    $a--先计算表达式的值,然后自身减1

    ++$a先自身加1,然后计算表达式的值

    --$a先自身减1,然后计算表达式的值

    Demo

    字符串运算符

    在PHP中字符串运算符只有一个,是英文的句号("."),也称为连接运算符。这个运算符不仅可以将两个字符串连接起来,变成合并的新字符串,也可以将一个字符串和任何标量数据类型相连接,合并成的都是新的字符串。

    Demo

    ";
    ?>

    赋值运算符

    =将一个值或表达式的结果赋值给变量

    +=将变量与所赋的值相加后的结果再赋给该变量

    -=将变最与所赋的值相减后的结果再赋给该变量

    *=将变最与所赋的值相乘后的结果再赋给该变量

    /=将变最与所赋的值相除后的结果再赋给该变量

    %=将变最与所赋的值相除取余后的结果再赋给该变量

    .=将变最与所赋的值相连后的结果再赋给该变量

    Demo

    比较运算符

    >大于,当左边操作数大于右边操作数时返回TRUE.否则返回FALSE

    <小于,当左边操作数小于右边操作数时返回TRUE.否则返回FALSE

    >=大于等于,当左边操作数大于等于右边操作数时返回TRUE.否则返回FALSE

    <=小于等于,当左边操作数小于等于右边操作数时返回TRUE.否则返回FALSE

    ==等于,当左边操作数等于右边操作数时返回TRUE.否则返回FALSE

    ===全等于,当左边操作数等于右边操作数,并且他们的类型也相同时返回TRUE.否则返回FALSE

    <>或!=不等于,当左边操作数不等于右边操作数时返回TRUE.否则返回FALSE

    !==不全等于,当左边操作数不等于右边操作数或者两者类型不相等的时候返回TRUE.否则返回FALSE

    Demo

     1);              //比较的结果为bool(false),1不大于1
    var_dump( $a < true );          //比较的结果为bool(false),ture会自动转为1,1等于1
    var_dump( $a >= 0.01 );         //比较的结果为bool(true),1大于0.01
    var_dump( $a <= "0.10yuan" );   //比较的结果为bool(false),“0.10yuan”会自动转成0.10再比较
    var_dump( $a == 1 );            //比较的结果为bool(true),1等于1
    var_dump( $a == "1" );          //比较的结果为bool(true),“1”会自动转为1再比较,相等
    var_dump( $a === "1" );         //比较的结果为bool(false),内容虽然相同,但不是同一类型的值
    var_dump( $a === 1 );           //比较的结果为bool(true),内容相同,类型也相同
    var_dump( $a <> 1 );            //比较的结果为bool(false),1等于1,所以为假
    var_dump( $a != 1 );            //比较的结果为bool(false),同上
    var_dump( $a != 0 );            //比较的结果为bool(true),1不等于0
    var_dump( $a !== "1" );         //比较的结果为bool(true),虽然内容相同,但类型不同

    逻辑运算符

    PHP提供了4种逻辑运算符:逻辑与(and或&&)、逻辑或(or或||)、逻辑非(not或!)和异或(xor)。

    逻辑与:逻辑与表示“并且”的关系,两边的表达式必须都为TRUE,结果才能为真,否则整个表达式为假。

    逻辑或:逻辑或表示“或者”的关系,两边的表达式只要有一个为TRUE,结果就为真,否则整个表达式为假。

    逻辑非:逻辑非表示“取反”的关系,如果表达式为TRUE,结果就变为FALSE,如果表达式为FALSE,结果则为TRUE。

    逻辑异或:逻辑异或在运算时两边的表达式不同时为TRUE才为TRUE,即必须是一边为TRUE,一边为FALSE。两边的表达式相同时,不管是都是TRUE还是都为FALSE,结果都为FALSE。

    Demo

    $username = "apple";                //将用户名apple保存在变量$username中
        $password = "123456";               //将用户密码123456保存在变量$password中
        $email = "apple@163.com";       //将用户电子邮件apple@163.com保存在变量$email中  
        $phone = "400-7654321";             //将用户电话400-7654321保存在变量$phone中
        
        //使用一个“逻辑与”运算符,和比较运算符一起使用共同作为条件判断
        if( $username == "apple" && $password == "123456" ) {        echo "用户名和密码输入正确";
        }    
        //使用一个多个“逻辑或”运算符,和比较运算符一起使用共同作为条件判断
        if( $username == "" || $password == "" || $email == "" || $phone == "" ) {        echo "所有的值一个都不能为空";
        }    
        //多个不同的逻辑运算符混合使用,和返回boolean值函数一起使用作为条件判断
        if( (isset($email) && !empty($email)) || (isset($phone) && !empty($phone)) ) {        echo "最少有一种联系方式";
        }

    三元运算符

    ?:可以提供简单的逻辑判断,在PHP中三元运算符就此一根独苗。等价于条件语句if...else....其语法格式如下所示:(exprl)? (expr2):(expr3)。其含义是在exprl求值为TRUE时,执行?和:之间的expr2并获取其值,在exprl求值为FALSE时,执行:之后的expr3并获取其值。

    Demo

    200?"好有钱":"没钱花了";
        
        //输出没钱花了
        echo $result;?>

    关于位运算符,在日常的程序中不常用,笔者不再做相关赘述,用兴趣的童鞋自行去百度一下吧。

    更多详情请见http://www.qiandu23.com/index.php/archives/157

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:PHP运算符
    上一篇:初识 PHPunit stub 模拟返回数据 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • PHP文件目录操作• php几个不起眼儿的小技巧• php生成随机唯一邀请码/优惠码 固定长度• 一个php写的截取字符串的函数• 最近写php命令行程序的一些心得
    1/1

    PHP中文网