Home >类库下载 >PHP类库 >PHP operators

PHP operators

高洛峰
高洛峰Original
2016-10-09 11:21:481821browse

运算符

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

算数运算符

PHP operators

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

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

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

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

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

Demo

<?php
    $count=1;
    echo $count++;  //这一行打印出1
    echo ++$count;  //这一行打印出3?>

字符串运算符

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

Demo

<?php
$name = "Kevin";                //定义一个人的名字为字符串类型
$age = 22;                      //定义一个人的年龄为整型
$height = 1.85;                 //定义一个人的身高为浮点型

//将以上不同类型的变量使用点操作符和字符串连接起来,一起输出
echo "我的名字是:".$name.",我的年龄是:".$age.",我的身高".$height."米。"."<br>";
?>

赋值运算符

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

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

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

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

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

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

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

Demo

<?php 
$a = $b = $c = $d = 20;            //$a、$b、$c、$d的值都为20

$a += 5;                            //等价于 $a = $a+5;
$b -= 5;                                //等价于 $b = $b-5;
$c *= 5;                            //等价于 $c = $c*5;
$d /= 5;                            //等价于 $d = $d/5;
$e %= 5;                            //等价于 $e = $e%5;

$result="结果是:";
$result .= "\$a自加5以后的值为: ${a},";
$result .= "\$b自减5以后的值为: ${b},";
$result .= "\$c自乘5以后的值为: ${c},";
$result .= "\$d自除5以后的值为: ${d},";
$result .= "\$e自除5取余以后的值为: ${e}。";

echo $result;                       //输出全部相连后的字符串结果

比较运算符

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

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

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

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

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

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

Demo

<?php 
$a=1;                           //声明一个整型变量$a值为1
var_dump( $a > 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

<?php 
    $money=100;
    $result=$money>200?"好有钱":"没钱花了";
    
    //输出没钱花了
    echo $result;?>

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

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


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Related articles

See more