运算符(operator):是一种将数据进行运算的特殊符号,在PHP中一共有十几种运算符之多,常见的它包含:

算术运算符
赋值运算符
比较运算符
逻辑运算符
连接运算符
错误控制运算符
三目运算符
自增自减运算符
位运算符

算术运算符

算术运算:基本算术操作

+:执行数据累加
    -:数据相减
    *:键盘上没有乘法符号,使用*代替,两个数相乘
    /:正斜杠代替,表示两个数相除
    %:取余运算,两个数(整数)相除,保留余数

赋值运算符

赋值运算:符号是"=",表示将右边的结果(可以是变量、数据、常量和其他计算出来的结果),保存到内存的某个位置,然后将位置的内存地址赋值到左侧的变量(或常量)。

类似的还有以下常见赋值运算符:

+=:(加赋值)左边的结果与右边结果相加,然后赋值给左边
    -=: (减赋值)左边减去右边的结果,然后赋值给左边
    *=:(乘赋值)左边乘以右边的结果,然后赋值给左边
    /=:(除赋值)左边除以右边的结果,然后赋值给左边
    %=:(求余赋值)左边与右边取余的结果,然后赋值给左边

如:$a += $b;等价于 $a = $a + $b;以此类推:
注意: 如果进行除非或者取余运算,那么要考虑右边表达式的结果是否为0

<?php
$a = 10;           //编译结果:11
$b = 5;            //         5
$a += $b;
$a -= $b - 1;      //$a = 15;$b = 5;$a = $a - ($b - 1);
echo $a."\n".$b;
?>

比较运算符(又称关系运算符)

比较运算:比较两个数据的大小,或者两个内容是否相同(满足返回true,不满足返回false)

>:左边大于右边
    >=:左边大于等于右边
    <:左边小于右边
    <=:左边小于等于右边
    ==:左边的与右边的形同(大小相同)
    !=:左边的与右边的不同(大小不同)
    ===:全等于,左边与右边相同:大小以及数据的类型都要相同
    !==:不全等于,只有大小或者类型不同

<?php
$a = '123';          //编译结果:bool(true)
$b = 123;            //         bool(false)
var_dump($a == $b);
var_dump($a === $b);
?>

逻辑运算符

逻辑运算:针对不同的结果进行匹配,满足条件返回true,不满足返货false

&&:逻辑与,左边的条件与右边的条件同时成立(两边结果都为true)
    ||:逻辑或,左边的条件或者右边的条件只要有一个满足即可
    !:对已有的条件进行取反,本身为true,取反结果就是false

<?php
$a = 'weekend';                            //编译结果:bool(false)
$b = 'goods';                              //         bool(true)
var_dump($a == 'weekend' && $b == 'good'); //         bool(false)
var_dump($a == 'weekend' || $b == 'good'); //         bool(true)
var_dump($b == 'good');
var_dump(!($b == 'good'));
?>

逻辑与和逻辑或又称之为短路运算:如果第一个表达式结果已经满足条件了,那么就不会运行逻辑运算符后面的表达式:在书写代码的时候,尽量将出现概率最高的(能够直接判断出结果)的表达式放到第一位。

连接运算符(又称字符串连接运算符)
连接运算:是php中将多个字符串拼接的一种符号

.:将两个字符串连接到一起
    .=:复合运算,将左边的内容与右边的内容连接起来,然后重新赋值给左边的变量

<?php
$a = 'hello';    //编译结果:hello123
$b = 123;        //         hello123
echo $a.$b;
$a .= $b;        //$a = $a.$b;
echo "\n".$a;
?>

错误控制运算符
在php中有一些错误可以提前预知,但是这些错误可能无法避免,但是又不希望报错给用户看,可以错误控制运算符处理
@:在可能出错的表达式前面使用@符号即可

<?php
$a = 10;
$b = 0;
echo $a % $b;         //代码错误!
echo @($a / $b);      //代码正确!
?>

错误控制运算符通常在生产环境(上线)会用到,在开发的时候不会用:系统本身最好没有任何错误

三目运算符(又称条件运算符)
三目运算:有三个表达式参与的运算(简单的分支结构缩写)

语法格式:
表达式1?表达式2:表达式3
运算:如果表达式1成立,那么执行表达式2,否则执行表达式3;

注意:如果表达式本身比较复杂,建议使用括号包起来

<?php
$a = 10;                //编译结果: 0
$b = $a > 10 ? 100 : 0;
echo $b;
?>

三目运算符可以进行复合三木运算:三目运算中的表达式2和3都是可以是另外一个三目运算
表达式1 ? (表达式2 ? 表达式4:表达式5):(表达式3 ? 表达式5:表达式6))

自增自减运算符(主要用于循环语句中)

++:在原来的值上+1
    --:在原来的值上-1

在php中自增自减运算符可以放到变量前或者后:

$a = 1;
$b = $a++;   //$a++会导致$a = $a + 1;$a = 2;而$b = 1;(先赋值后运算)
$c = ++$a;   //++$a会导致$a = $a + 1;$a = 2;而$c = 2;(先运算后赋值)

<?php                                                 //编译结果:$a的值为:2$b的值为:2
$a = $b = 1;                                          //         $a++的值为:2
$a++;                                                 //         ++$b的值为:3
++$b;                                                 //         现在$a的值为:3
echo "\$a的值为:$a","\$b的值为:$b";                    //         现在$b的值为:3
echo "\n"."\$a++的值为:".$a++."\n"."++\$b的值为:".++$b;
echo "\n"."现在\$a的值为:$a"."\n"."现在\$b的值为:$b";
?>

php基础(7)_运算符相关推荐

  1. c语言移动通信功率计算,《移动通信软件编程基础—C语言》第3章_运算符.ppt

    <移动通信软件编程基础-C语言>第3章_运算符.ppt 移动通信软件编程基础 C语言,知识回顾3,运算符,第,章,本章目标理解表达式,掌握赋值运算符和赋值表达式,掌握关系运算符和关系表达式 ...

  2. JavaScript学习笔记01【基础——简介、基础语法、运算符、特殊语法、流程控制语句】

    w3school 在线教程:https://www.w3school.com.cn JavaScript学习笔记01[基础--简介.基础语法.运算符.特殊语法.流程控制语句][day01] JavaS ...

  3. 【JavaScript系列】JS基础语法_从变量到数组一网打尽_有教程有实战

    [JavaScript系列]基础语法_从变量到数组一网打尽_有教程有实战 JavaScript基础语法目录 基础语法 延迟和异步脚本 变量 数据类型 数据类型简介 简单数据类型与复杂数据类型 栈和堆 ...

  4. java基础试题_java基础测试题_含答案.doc

    java基础测试题_含答案 Java基础试题 姓名 一.选择题(每题2分,共30分) 请写出标识符的命名规则描述正确的是[多选]( ABCD ) A.由英文字母.数字._和$组成,长度不限. B.标识 ...

  5. 黑马程序员Java零基础视频教程_上部(P1-P80)

    黑马程序员Java零基础视频教程_上部(P1-P80) 1. Java入门 1.1 Java学习介绍 1.2 Java人机交互 1.2.1 常用CMD命令 2. Java基础学习 2.1 Java入门 ...

  6. 传智博客2015年最新版iOS基础视频_最适合初学者入门

    视频介绍: 本视频是iOS学院精心录制的免费精华版iOS语言基础视频,该视频特点在于最大程度保证了知识点的完整性,按知识点进行视频录制,每个视频控制在20分钟左右,不会使学生产生疲劳,授课讲究通俗易懂 ...

  7. %3c- r语言运算符,R语言基础教程之运算符

    原标题:R语言基础教程之运算符 运算符类型 在R编程中有以下类型的运算符 - 算术运算符 关系运算符 逻辑运算符 赋值运算符 其他运算符1.算术运算符 下表显示了R语言支持的算术运算符.运算符对向量的 ...

  8. sql基础教程和mysql基础教程_书评「SQL基础教程(第2版)」| 你应该知道的基础知识点梳理·上...

    写在前面关于这本书:SQL的基础教程,可以使你在SQL的学习中轻松实现从0到1的过程,循序渐进地掌握SQL的基础知识和技巧.对于零基础来说非常友好,看完能够迅速上手SQL. 关于本文:一篇对这本书的知 ...

  9. linux基础知识_压缩—进程管理-网络管理-ftp-nfs-ssh-scp

    linux基础知识_压缩-进程管理-网络管理-ftp-nfs-ssh-scp 1.压缩包管理 gzip .gz格式的压缩包,不打包,分别压缩,原文件消失 bzip2 .bz2格式的压缩包,原文件不会消 ...

最新文章

  1. VR/AR标准委员会成立,宣布全新的标准OpenXR
  2. python与人工智能编程-总算明白python人工智能编程入门案例
  3. Java Error(三)
  4. window10安装python2.7_Windows10-python2.7安
  5. JS过滤表单数据中的特殊字符
  6. Pagodas HDU - 5512
  7. java map统计学生名单_Java含自己的总结:集合,学生,遍历,ArrayList,Set,Map,泛型,班级,发牌—诗书画唱...
  8. LeetCode 1679. K 和数对的最大数目(哈希)
  9. 文艺小清新手绘秋季秋天叶片,值得设计师收藏的好素材
  10. Winform 显示Gif图片
  11. android 音乐游戏,手速党的胜利 -- 音乐游戏专题 #iOS #Android
  12. 正确理解WPF中的TemplatedParent
  13. react-native 自定义 下拉刷新 / 上拉加载更多 组件
  14. mtd设备操作、jffs2
  15. 超详细的IC封装形式大全
  16. java 盲水印_3步搞定图像盲水印?试试云开发扩展能力
  17. 西数、希捷、DIY移动硬盘详细拆解,暴力解析
  18. qq服务器传输文件,QQ离线传文件功能简介
  19. python三国演义人物出现次数_Python分析《三国演义》人物出场次数,孔明第二,赵云第五...
  20. 张小丫第一次微信支付(讲解)

热门文章

  1. Ti IMGLIB库简介
  2. 使用更便捷的时间序列预测模型 2022-6-2
  3. 正弦波和方波发生器的设计
  4. Lazada收款方式是对接P卡好还是WF卡好?
  5. 关于汽车诊断OBD的理解(ISO15031-5)(转发)
  6. UWB:室内定位首选
  7. 网狐、6878、EWIN后台管理员帐号密码 对应数据库表
  8. redis集群报 MOVED 7365 127.0.0.1:7002
  9. C语言计算机二级/C语言期末考试 刷题(二)
  10. 股价从8美元到50美元,微博做对了什么