php入门の运算符
2016-01-26 00:00
671 查看
摘要: 算数运算符,赋值运算符,比较运算符,逻辑运算符,三元运算符,字符串连接运算符,错误控制运算符,取模运算符demo
(一)算术运算符
加(+),减(-),乘(*),除(/),取余,即取模(%)
代码
输出
(二)赋值运算符
简述:(1) "=" 两个变量两个内存空间,变量互不影响,如:$a = $b;
(2) "&" 两个变量一个内存空间,内存值变化两个变量的值都会变,如:$a = &$b;
详述:
(1)“=”:把右边表达式的值赋给左边的运算数。它将右边表达式值复制一份,交给左边的运算数。换而言之,首先给左边的运算数申请了一块内存,然后把复制的值放到这个内存中。
(2)“&”:引用赋值,意味着两个变量都指向同一个数据。它将使两个变量共享一块内存,如果这个内存存储的数据变了,那么两个变量的值都会发生变化。
代码
输出
简述:因为$a是赋值给了$b,而$c是被赋予了$a的地址或者说空间,所以下面$a变值,$c也跟着变。
详解:虽然$a被再次赋值是在$c被赋予$a的地址之后,但是他们指向同一地址,所以只要地址中的值改变了,两个变量的值也会改变。
(三)比较运算符
等于(==),严格等于(===),不等(!=),严格不等(!==),不等(<>),小于(<),大于(>),小于等于(<=),大于等于(>=)
严格不严格一般是针对于 数据类型
代码
结果
比较运算符的结果为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、逻辑非:某个人要反对,但是通过逻辑非,使其反对无效;
代码
输出
(五)三元运算符
格式: 判断表达式 ? true运算的结果 : false运算的结果 效果和 if 差不多,适合用于一条判断,不适合多条判断
代码
结果
(六)字符串连接运算符
(1)连接运算符(“.”):它返回将右参数附加到左参数后面所得的字符串。
(2)连接赋值运算符(“.=”):它将右边参数附加到左边的参数后。
(七)错误控制运算符
@运算符,在可能出现错误的表达式之前加前缀@,就不会把出错信息显示在客户端上
详解:PHP中提供了一个错误控制运算符“@”,对于一些可能会在运行过程中出错的表达式时,我们不希望出错的时候给客户显示错误信息,这样对用户不友好。于是,可以将@放置在一个PHP表达式之前,该表达式可能产生的任何错误信息都被忽略掉;
如果激活了track_error(这个玩意在php.ini中设置)特性,表达式所产生的任何错误信息都被存放在变量$php_errormsg中,此变量在每次出错时都会被覆盖,所以如果想用它的话必须尽早检查。
需要注意的是:错误控制前缀“@”不会屏蔽解析错误的信息,不能把它放在函数或类的定义之前,也不能用于条件结构例如if和foreach等。
代码
输出
(八)取模运算符demo
代码:
输出:
ceil() 函数向上舍入为最接近的整数,例子
输出:
(一)算术运算符
加(+),减(-),乘(*),除(/),取余,即取模(%)
代码
<?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
相关文章推荐
- PHP文件上传-单文件上传函数思路
- yii2学习文章
- PHPCMS、织梦DEDECMS、帝国CMS的选择与比较
- php读取和保存base64编码的图片内容
- 统计脚本梳理
- php将一个字符串转变成键值对数组的效率问题
- PHP5 mysqli 教程
- PHP5 mysqli 教程
- response响应那些事之PrintWriter,OutputStream;write(),print[ln]()
- 与JS的encodeURIComponent相对应的PHP函数
- php的魔术方法__get(),__set(),__call(),__callStatic()以及static延迟静态绑定
- [转]php与java通用AES加密解密算法
- PHP程序在引号前自动加反斜杠的原因与处理办法
- Windows7安装FTP
- php备份数据库
- php安装程序
- Windows10中的IIS10安装php manager
- php函数:PHP pathinfo() 函数
- (转)PHP获取今天、昨天、明天的日期
- PHP学习笔记十、图像处理