您的位置:首页 > 编程语言 > PHP开发

php入门の运算符

2016-01-26 00:00 671 查看
摘要: 算数运算符,赋值运算符,比较运算符,逻辑运算符,三元运算符,字符串连接运算符,错误控制运算符,取模运算符demo

(一)算术运算符

加(+),减(-),乘(*),除(/),取余,即取模(%)

代码

<?php
$english = 110; //英语成绩
$math= 118; //数学成绩
$biological = 80; //生物成绩
$physical = 90; //物理成绩
$sum = $english + $math + $biological + $physical;
$avg = $sum/4;
$x = $math - $english;
$x2 = $english * $english;
echo "总分:".$sum."<br />";
echo "平均分:".$avg."<br />";
echo "数学比英语高的分数:".$x."<br />";
echo "英语成绩的平方:".$x2."<br />";

输出

总分:398
平均分:99.5
数学比英语高的分数:8
英语成绩的平方:12100

(二)赋值运算符

简述:(1) "=" 两个变量两个内存空间,变量互不影响,如:$a = $b;
(2) "&" 两个变量一个内存空间,内存值变化两个变量的值都会变,如:$a = &$b;

详述:

(1)“=”:把右边表达式的值赋给左边的运算数。它将右边表达式值复制一份,交给左边的运算数。换而言之,首先给左边的运算数申请了一块内存,然后把复制的值放到这个内存中。

(2)“&”:引用赋值,意味着两个变量都指向同一个数据。它将使两个变量共享一块内存,如果这个内存存储的数据变了,那么两个变量的值都会发生变化。

代码

<?php
$a = "我在慕课网学习PHP!";
$b = $a;
$c = &$a;
$a = "我天天在慕课网学习PHP!";

echo $b."<br />";
echo $c."<br />";
?>

输出

我在慕课网学习PHP!
我天天在慕课网学习PHP!

简述:因为$a是赋值给了$b,而$c是被赋予了$a的地址或者说空间,所以下面$a变值,$c也跟着变。

详解:虽然$a被再次赋值是在$c被赋予$a的地址之后,但是他们指向同一地址,所以只要地址中的值改变了,两个变量的值也会改变。

(三)比较运算符

等于(==),严格等于(===),不等(!=),严格不等(!==),不等(<>),小于(<),大于(>),小于等于(<=),大于等于(>=)

严格不严格一般是针对于 数据类型
代码
<?php
$a = 1;
$b = "1";
var_dump($a == $b);
echo "<br />";
var_dump($a === $b);
echo "<br />";
var_dump($a != $b);
echo "<br />";
var_dump($a <> $b);
echo "<br />";
var_dump($a !== $b);
echo "<br />";
var_dump($a < $b);
echo "<br />";
var_dump($a > $b);

结果
bool(true)
bool(false)
bool(false)
bool(false)
bool(true)
bool(false)
bool(false)

比较运算符的结果为bool类型
(四)逻辑运算符
(1)(&,and,&&),或(|,or,||),非(!),异或(^,xor)
逻辑与&可写成and,逻辑或|可写成or,异或^可携程xor
(2)表达式一$a && $b ,表达式二$a & $b

1、相同点:两个表达式都是当$a、$b都为true时,表达式为真。两种运算符对此表达式结果没有影响。

2、不同点:表达式$a && $b中&&前面的$a为false时,已确定表达式为假,此时逻辑操作符&&后的$b不再进行计算,即所谓的被运算符“短路”了。而对于表达式$a & $b,不论&前的$a真假,表达式后的$b依然要进行计算。逻辑操作符后的$b是否被运行,可能影响到后面的数据和程序结果。
对于逻辑操作符||和|,异同同上。

(3)投票的角度来理解逻辑运算:

1、逻辑与:要求所有人都投票同意,才会通过某协议;

2、逻辑或:只要求一个人投票同意就行;

3、逻辑异或:只能有且只能有一个人投票同意;

4、逻辑非:某个人要反对,但是通过逻辑非,使其反对无效;

代码

<?php
$a = TRUE; //A同意
$b = TRUE; //B同意
$c = FALSE; //C反对
$d = FALSE; //D反对
echo ($a and $b)?"通过":"不通过";
echo "<br />";
echo ($a or $c)?"通过":"不通过";
echo "<br />";
echo ($a xor $c xor $d)?"通过":"不通过";
echo "<br />";
echo !$c?"通过":"不通过";
echo "<br />";
echo $a && $d?"通过":"不通过";
echo "<br />";
echo $b || $c || $d?"通过":"不通过";
?>

输出
通过
通过
通过
通过
不通过
通过

(五)三元运算符
格式: 判断表达式 ? true运算的结果 : false运算的结果 效果和 if 差不多,适合用于一条判断,不适合多条判断
代码
<?php
$a = 18;//成绩
$b = $a >= 60 ? "及格":"不及格哦";
echo $b;
?>

结果
不及格哦

(六)字符串连接运算符
(1)连接运算符(“.”):它返回将右参数附加到左参数后面所得的字符串。
(2)连接赋值运算符(“.=”):它将右边参数附加到左边的参数后。

(七)错误控制运算符
@运算符,在可能出现错误的表达式之前加前缀@,就不会把出错信息显示在客户端上
详解:PHP中提供了一个错误控制运算符“@”,对于一些可能会在运行过程中出错的表达式时,我们不希望出错的时候给客户显示错误信息,这样对用户不友好。于是,可以将@放置在一个PHP表达式之前,该表达式可能产生的任何错误信息都被忽略掉;
如果激活了track_error(这个玩意在php.ini中设置)特性,表达式所产生的任何错误信息都被存放在变量$php_errormsg中,此变量在每次出错时都会被覆盖,所以如果想用它的话必须尽早检查。
需要注意的是:错误控制前缀“@”不会屏蔽解析错误的信息,不能把它放在函数或类的定义之前,也不能用于条件结构例如if和foreach等。
代码
<?php
$a = "张先生";
$tip = $a.",欢迎您在慕课网学习PHP!";
$b = "东边日出西边雨";
$b .= ",道是无晴却有晴";
$c = "东边日出西边雨";
$c = $c.",道是无晴却有晴";
echo  $tip."<br />";
echo  $b."<br />";
echo  $c."<br />";
?>

输出
张先生,欢迎您在慕课网学习PHP!
东边日出西边雨,道是无晴却有晴
东边日出西边雨,道是无晴却有晴

(八)取模运算符demo
代码:
<?php
$maxLine = 4; //每排人数
$no = 17;//学生编号

$line = ceil($no/$maxLine);
$row = $no%$maxLine?$no%$maxLine:$maxLine;

echo "编号<b>".$no."</b>的座位在第<b>".$line."</b>排第<b>".$row."</b>个位置";
?>

输出:
编号17的座位在第5排第1个位置

ceil() 函数向上舍入为最接近的整数,例子

<?php
echo(ceil(0.60);
echo(ceil(0.40);
echo(ceil(5);
echo(ceil(5.1);
echo(ceil(-5.1);
echo(ceil(-5.9));
?>

输出:

1
1
5
6
-5
-5
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: