前端PHP入门-006-表达式和运算符

算术运算

概念

算数运算符,就是大家小学所学绝大多数知识:

符号 描述 示例
+ 加号 x+" role="presentation" style="position: relative;">x+x+y
- 减号 x−" role="presentation" style="position: relative;">x?x?y
* 乘号 x∗" role="presentation" style="position: relative;">x?x?y
/ 除号 x/" role="presentation" style="position: relative;">x/x/y
% 取余 x" role="presentation" style="position: relative;">xxy

代码实验室

太简单,快速看一下就行

  1. <?php
  2. $x = 10;
  3. $y = 20;
  4. //10+20为30
  5. echo $x + $y;
  6. ?>
  1. <?php
  2. $x = 20;
  3. $y = 10;
  4. //20 -10 为10
  5. echo $x - $y;
  6. ?>
  1. <?php
  2. $x = 20;
  3. $y = 10;
  4. //20乘以10结果为200
  5. echo $x * $y;
  6. ?>
  1. <?php
  2. $x = 20;
  3. $y = 10;
  4. //20除以10结果为2
  5. echo $x / $y;
  6. ?>
  1. <?php
  2. $x = 10;
  3. $y = 3;
  4. //$x 不能整除3,得到的余数为1,所以结果输出为1
  5. echo $x % $y;
  6. ?>

与我们数学所学一样,也有优先级:先乘除,后加减。如果你想更明确的改变优先级,那就用()【小括号】,将想要优先的值给括起来。


赋值运算

概念

赋值运算,我们已经学过了。

我们在数学里面把 = (一个等号)叫作赋值运算符,即:把等号右边的值,赋值给等号左边的变量,左边的变量就为右边的值。

代码是从上到下运行的,因此赋值就可以从上至下的重复赋值:

  1. <?php
  2. $x = 5;
  3. $x = true;
  4. $x = ‘爱你‘;
  5. $x = 12.888;
  6. echo $x;
  7. ?>

那么PHP的赋值运算符还有几个:

符号 举例 等价于
+= x+=" role="presentation" style="position: relative;">x+=x+=y x=" role="presentation" style="position: relative;">x=x=x + $y
-= x−=" role="presentation" style="position: relative;">x?=x?=y x=" role="presentation" style="position: relative;">x=x=x - $y
*= x∗=" role="presentation" style="position: relative;">x?=x?=y x=" role="presentation" style="position: relative;">x=x=x * $y
/= x/=" role="presentation" style="position: relative;">x/=x/=y x=" role="presentation" style="position: relative;">x=x=x / $y
%= x" role="presentation" style="position: relative;">xxy x=" role="presentation" style="position: relative;">x=x=x % $y
.= x.=" role="presentation" style="position: relative;">x.=x.=y x=" role="presentation" style="position: relative;">x=x=x . $y

代码

  1. <?php
  2. $x = 5;
  3. $y = 8;
  4. $x += $y;
  5. echo $x;
  6. ?>

其实这个没有什么可说的!



# 自加、自减运算

概念

自加自减,就是把自己加1,或者减1。

如果你学习过其他编程语言。你会发现,此处的用法又是计算机里面的一个规定。可以这样用,用起来更加简洁。

符号 说明
$x++ 先赋值后加
$x– 先赋值后减
++$x 先加后赋值
–$x 先减后赋值

代码

  1. <?php
  2. $x = 5;
  3. //先赋值后加:即先将$x的值赋值给$y。$x的值为5,所以将$x的值赋值给$y。$y也为5
  4. $y = $x++;
  5. //$x的结果输出为6,因为赋值给$y后,$x自己又把自己进行了+1操作。所以,$x的结果为6
  6. echo $x;
  7. ?>

比较一下

  1. <?php
  2. $x = 5;
  3. //先将$x自加1,$x等于5,自加1后结果为6。因此,$y的结果为6
  4. //自加后,再将结果6偷偷的赋值给自己$x
  5. $y = ++$x;
  6. //$x的结果输出也为6。因为$x执行+1完成后,将5+1的结果赋值给了自己
  7. echo $x;
  8. ?>

你再做实验,试试x–和–" role="presentation" style="position: relative;">x–和–x–和–x的结果是这样吗?

请回答,下面water+" role="presentation" style="position: relative;">water+water+paper的结果为多少?

  1. <?php
  2. $x = 5;
  3. $y = 6;
  4. $foo = $x++ + $x--;
  5. $bar = ++$y + ++$x;
  6. $cup = $x-- + $y--;
  7. $paper = ++$x + $x++;
  8. $water = $y-- + $x--;
  9. echo $water + $paper;
  10. ?>


# 比价运算符

## 概念

说明 符号
大于 >
小于 <
大于等于

=

小于等于 <=
不等于 != (不等的另外一种写法<>)
等于 ==
全等(判断类型等于) ===
全不等(判断类型不等于) !==

这个感觉也没有什么可说的

代码

  1. <?php
  2. $x = 5;
  3. $y = 6;
  4. //因为5大于6不成立,所以为错的。即为false执行了假区间
  5. if($x > $y){
  6. //真区间
  7. echo ‘变量x 大于 变量y,成立‘;
  8. }else{
  9. //假区间
  10. echo ‘变量x 大于 变量y,不成立‘;
  11. }
  12. ?>

重点是演示,等于(==)和全等于也叫判断类型等于(===)

  1. <?php
  2. $x = 5;
  3. $y = ‘5‘;
  4. if($x == $y){
  5. echo ‘结果为真‘;
  6. }else{
  7. echo ‘结果为假‘;
  8. }
  9. ?>

比较一下

  1. <?php
  2. $x = 5;
  3. $y = ‘5‘;
  4. if($x === $y){
  5. echo ‘结果为真‘;
  6. }else{
  7. echo ‘结果为假‘;
  8. }
  9. ?>


# 逻辑运算

逻辑思维能力,相当于物理电路中的开关的串行和并行

概念

下面表格中的:x为条件一," role="presentation" style="position: relative;">x为条件一,x为条件一,y 为条件二。进行说明:

  1. 逻辑与,中文解释为并且。可理解为,x并且" role="presentation" style="position: relative;">x并且x并且y 都为真(true)的时候执行。
  2. 逻辑或,中文解释为或者。可以理解为,x或者" role="presentation" style="position: relative;">x或者x或者y其中一个为真(true)的时候执行。
  3. 逻辑非,中文解释取反。如果$x的执为假(false),进行一次非操作。非假(false)就为真了,就可以执行真区间了。反推true,则执行假区间了。
  4. 逻辑异或,如果x和" role="presentation" style="position: relative;">x和x和y相同则为false,不相同则为true。
举例 说明 详细说明
xand" role="presentation" style="position: relative;">xandxandy 逻辑与(并且关系) x和" role="presentation" style="position: relative;">x和x和y 为真则返回真
$x && $y 同上 同上
xor" role="presentation" style="position: relative;">xorxory 逻辑或 x," role="presentation" style="position: relative;">x,x,y均为false时为假,其他情况全为真
$x ‖ $y 同上 同上
!$x 逻辑非 取反,即true变为false,false变为true
$x xor $y 逻辑异或 相同取false,相异为true

代码

  • 逻辑与
  1. <?php
  2. $x = true;
  3. $y = false;
  4. //逻辑与(并且),要求两个都为true才执行真区间,所以代码中执行假区间
  5. if($x && $y){
  6. echo ‘执行了真区间‘;
  7. }else{
  8. echo ‘执行了假区间‘;
  9. }
  10. ?>
  • 逻辑或
  1. <?php
  2. $foo = false;
  3. $bar = true;
  4. //逻辑或,有一个为真则为真
  5. if($foo || $bar){
  6. echo ‘执行真区间‘;
  7. }else{
  8. echo ‘执行假区间‘;
  9. }
  10. ?
  11. ```
  12. + 逻辑非
  13. ```php
  14. <?php
  15. $foo = false;
  16. //逻辑非,把false变为了true
  17. if(!$foo){
  18. echo ‘执行真区间‘;
  19. }else{
  20. echo ‘执行假区间‘;
  21. }
  22. ?>

【重点知识】短路

短路就是采用一个懒人模式来思考问题。

逻辑与的特性是:两边为true即为true,其他情况均为假。

逻辑或的特性是:两边为假均为假,其他情况全为真。

我们现在把自己想象成一个懒汉,非常非常懒。来思考逻辑与和逻辑或。可不可以这样理解:

逻辑与:如果前面第一个条件为false了,后面就可以不用执行了。

用代码表示:if(x &amp;&amp;" role="presentation" style="position: relative;">x &&x &&y) 如果x已经为false了,后面的" role="presentation" style="position: relative;">x已经为false了,后面的x已经为false了,后面的y 就没有执行必要了。

逻辑或:前面第一个条件为true了,后面就不用执行了。

用代码表示:if(x||" role="presentation" style="position: relative;">x||x||y) 如果x已经为true了,后面的" role="presentation" style="position: relative;">x已经为true了,后面的x已经为true了,后面的y 就没有执行必要了。

我们写段代码来证明一下:

  1. <?php
  2. $x = false;
  3. $y = 2;
  4. if($x && $y++){
  5. echo ‘真‘;
  6. }else{
  7. echo ‘假‘;
  8. }
  9. //结果还为2,说明没有执行$y++
  10. echo $y;
  11. ?>

代码如下,将两个&符改为一个&符试试:

  1. <?php
  2. $x = false;
  3. $y = 2;
  4. if($x & $y++){
  5. echo ‘真‘;
  6. }else{
  7. echo ‘假‘;
  8. }
  9. //再看看结果
  10. echo $y;
  11. ?>

我们来看看短路的逻辑或:

  1. <?php
  2. $x = true;
  3. $y = 2;
  4. if($x || $y++){
  5. echo ‘真‘;
  6. }else{
  7. echo ‘假‘;
  8. }
  9. //结果,因为$x已经为true了,肯定执行真区间没有必要执行$y++了
  10. echo $y;
  11. ?>

改成一个 | 再看看执行结果

  1. <?php
  2. $x = true;
  3. $y = 2;
  4. if($x | $y++){
  5. echo ‘真‘;
  6. }else{
  7. echo ‘假‘;
  8. }
  9. //自己运行对比结果
  10. echo $y;
  11. ?>

典型的短路应用的代码

  1. <?php
  2. //如果为defined(‘AUTH‘)存在AUTH常量则为true,不访问后面的exit了。如果为false则执行exit
  3. defined(‘AUTH‘) or exit(‘存在安全因素不准访问‘);
  4. ?>

exit 的意思是指在此处停止运行,退出。后面的PHP代码不再执行了。它有两种用法:

1.直接exit; 就是直接退出

2.exit(‘提示内容’),退出的时候还给出一段提示内容



# 位运算

俱往昔,用二进制很少,还是自己本身没有那么厉害,俺不是科班出身

等以后用到位运算的时候,再来学习吧。

举例 说明 详细说明
a &amp;" role="presentation" style="position: relative;">a &a &b and(按位与) 将把 a和" role="presentation" style="position: relative;">a和a和b 中都为 1 的位设为 1
$a | $b Or(按位或) 将把 a和" role="presentation" style="position: relative;">a和a和b 中任何一个为 1 的位设为 1。
a ^" role="presentation" style="position: relative;">a ^a ^b xor(按位异或) 将把 a和" role="presentation" style="position: relative;">a和a和b 中一个为 1 另一个为 0 的位设为 1。
~ $a Not(按位取反) 将 $a 中为 0 的位设为 1,反之亦然。
a&lt;&lt;" role="presentation" style="position: relative;">a<<a<<b 左移 将 a中的位向左移动" role="presentation" style="position: relative;">a中的位向左移动a中的位向左移动b 次(每一次移动都表示“乘以 2”)。
a&gt;&gt;" role="presentation" style="position: relative;">a>>a>>b 右移 将 a中的位向右移动" role="presentation" style="position: relative;">a中的位向右移动a中的位向右移动b 次(每一次移动都表示“除以 2”)。

均为二进制的运算

简单了解一下就行:

  1. <?php
  2. //$x二进制值为:
  3. $x = 5;
  4. //$y二进制值为:
  5. $y = 8;
  6. //结果为13
  7. echo $x ^ $y;
  8. ?>
变量 二进制值
$x 0101
$y 1000
异或结果 1101

异或解释:如果x,y两个值不相同,则异或结果为1。如果x,y两个值相同,异或结果为0。



# 运算符优先级

因为绝大多数人都不会去记运算符的优先级。

我们在小学的时候,优先级是先乘除后加减。想要改变运算的优先级加括号即可。

重点:不用记优先级,确定不了的时候号上括号把优先级标出来即可



# 三元运算符和其它运算符

概念

符号 说明
$x? 真代码段:假代码段 判断是否为真假 ? 真情况 : 假情况;
``(反引号) 反引号中间插代命令,执行系统命令,等价于shell_exec函数
@ 单行抑制错误,把这一行的错误不让它显示出来了,效率低不建议使用
=> 数组下标访问符
-> 对象访问符
instanceof 判断某个对象是否来自某个类,如果是的返回true,如果不是返回false

怎么说呢?很重要,但是对于web前端的各位学生又不是那么重要,但是你必须要做到熟悉或者掌握程度

三元运算符,相当于是if…else结构。不过三元运算符的写法更加简洁,语法格式如下:

$x? 真代码段(只能写一句代码):假代码段(只能写一句代码);

  1. <?php
  2. $x = true;
  3. $x ? $y = 5 : $y = 6;
  4. //输出5
  5. echo $y;
  6. ?>

反引号就更加特殊了,我们经常需要显示IP地址,在PHP里面可不可能显示我们windows的IP地址呢?用反引号,就可以执行我们的命令(不过有些虚拟服务器是禁止执行这些的命令脚本的):

  1. <?php
  2. echo ‘<pre>‘;
  3. echo `ipconfig`;
  4. echo ‘</pre>‘;
  5. ?>

上面的代码你执行看看效果,是不是显示出来了你机器的IP地址和一堆和IP相关的参数?

@符是指单行抑制错误,以后的章节我们还会讲解到。了解即可

  1. <?php
  2. //打开一个不存在的文件 pangsir.txt,你运行一下会发现报错了。
  3. //再前面再加上一个@符看看效果
  4. $fp = fopen(‘pangsir.txt‘,‘r‘);
  5. //@$fp = fopen(‘pangsir.txt‘,‘r‘);
  6. ?>

数组下标访问符,以后也会有一章讲解,此处了解一下就可以了:

  1. <?php
  2. $data = array(‘sina‘ =>‘新浪‘ ,‘sohu‘ => ‘搜狐‘);
  3. ?>

对象访问符->和instanceof 都是了解级别

  1. <?php
  2. //实例化一个对象
  3. $obj = new StdClass();
  4. //判断某对象是某由某个类实例化,如果是的则执行真
  5. if($obj instanceof stdClass){
  6. echo ‘真‘;
  7. }else{
  8. echo ‘假‘;
  9. }
  10. //向obj对象中追加一个成员属性为username
  11. $obj -> username = ‘四海兴唐‘;
  12. echo $obj -> username;
  13. ?>

上述:web前端的同学了解即可!!!

来自为知笔记(Wiz)

时间: 2024-11-05 12:17:59

前端PHP入门-006-表达式和运算符的相关文章

python学习笔记表达式和运算符(一)

表达式和运算符 什么是表达式? 1+2*3 就是一个表达式,这里的加号和乘号叫做运算符,1.2.3叫做操作数.1+2*3 经过计算后得到的结果是7,就1+2*3 = 7.我们可以将计算结果保存在一个变量里,ret = 1-2*3 . 所以表达式就是由操作数和运算符组成的一句代码或语句,表达式可以求值,可以放在"="的右边,用来给变量赋值. 算术运算符 : + - * / //(取整除) %(取余) ** >>> 2+3 >>> 3-2 >>

JavaScript学习笔记【2】表达式和运算符、语句、对象

笔记来自<JavaScript权威指南(第六版)> 包含的内容: 表达式和运算符 语句 对象 表达式和运算符 数组直接量中的列表逗号之间的元素可以省略,这时省略的空位会填充值undefined.元素列表末尾可以留下单个逗号,这时并不会创建一个新的值为undefined元素. 属性访问表达式,.identifier的写法只适用于要访问的属性名称是合法的标识符,并且需要知道要访问的属性的名字.如果属性名称是一个保留字或者包含空格和标识符,或是一个数字(对于数组来说),则必须使用方括号的写法.当属性

JavaScript权威指南第04章 表达式和运算符

www.qdmm.com/BookReader/1845423,31051137.aspx www.qdmm.com/BookReader/1845423,31073665.aspx www.qdmm.com/BookReader/1845423,31088923.aspx www.qdmm.com/BookReader/1845423,31104070.aspx www.qdmm.com/BookReader/1845423,31114804.aspx www.qdmm.com/BookRea

第八章 表达式和运算符

表达式和运算符 表达式字面量 整数字面量实数字面量字符字面量字符串字面量 求值顺序 优先级结合性 简单算术运算符求余运算符关系比较运算符和相等比较运算符递增运算符和递减运算符条件逻辑运算符逻辑运算符移位运算符赋值运算符 表达式和运算符 表达式 本章将定义表达式,并描述C#提供的运算符. 运算符是一个符号,它表示返回单个结果的操作.操作数(operand)指作为运算符输入的数据元素.一个运算符会: 将操作数作为输入 执行某个操作 基于该操作返回一个值 表达式是运算符和操作数的字符串.可以作为操作数

JS学习第六天----表达式和运算符

表达式和运算符 1.如果不清楚运算符的优先级,最简单的办法就是使用括号来明确表明计算顺,赋值操作的优先级很低,几乎自后才被执行 2.如果"+"运算符表达式中一个是字符串,而另一个不是,则另一个会被自动转换为字符串. 如果加号运算符中一个运算数为对象,则这个对象会被转换为可以进行加法运算的数字或可以进行连接运算的字符处澳门,这一转换是通过调用该对象的valueof()或toString()方法来实现的. 3.如果"-"运算符的运算数字不是数字,那么系统会自动把它们转换

JavaScript 精粹 基础 进阶(2)表达式和运算符

转载请注明出处 原文连接 http://blog.huanghanlian.com/article/5b698e88b8ea642ea9213f4a 表达式和运算符 JavaScript 表达式 表达式是指能计算出值得任何可用程序单元.--Wiki 表达式是一种JS短语,可使JS解释器用来产生一个值.--<JS权威指南> JavaScript 运算符 三元运算符 c ? a : b var val = true ? 1 : 2; // val = 1 //val值为true就会返回冒号前面的值

表达式和运算符

1.原始表达式 最简单的表达式是“原始表达式”.原始表达式是表达式的最小单位——它们不再包含其他表达式JavaScript中的原始表达式包含常量或直接量.关键字和变量 例如: 1.23//数字直接量 “hello”//字符串直接量 true //保留字 undefined //变量 2.对象和数组的初始化表达式 对象和数组初始化表达式实际上是一个新创建的对象和数组 数组初始化表达式: var p=[1,3,5,6,8]; var p=[[1,2,3],[4,5,6],[7,8,9]]; var

第4章 表达式和运算符

表达式(expression)是JS中的一个短语,JS解释器会将其计算(evaluate)出一个结果 4.1 原始表达式 4.2 对象和数组的初始化表达式 4.3 函数定义表达式 4.4 属性访问表达式 4.5 调用表达式 4.6 对象创建表达式 4.7 运算符概述 4.8 算术表达式 4.9 关系表达式 4.10 逻辑表达式 4.11 赋值表达式 4.12 表达式计算 4.13 其他运算符

2、JS中的表达式和运算符

一.表达式 1.原始表达式:2.14,“test”,true/false,null……复合表达式:10*20…… 2.数组.对象的初始化表达式:new Array(1,2),[1,undefined,4],{x:1,y:2}=>var o = new Object();o.x=1;o.y=2;…… 3.函数表达式:var fe = function(){}; (function(){console.log('hello');})()…… 4.属性访问表达式:var o = {x:1}; o.x;

第四章:Javascript表达式和运算符

表达式是javascript中的一个短语,javascript解释器会将其计算出一个结果.程序中常用量是最简单的一类表达式就是变量.变量名也是一种简单的表达式,它的值就是赋值给变量的值.复杂的表达式是由简单的表达式组成的.比如数组访问表达式是由一个表示数组的表达式,方括号.一个整数表达式构成.它们所组成新的表达式运算结果是该数组特定位置的元素值.同样的函 数调用表达式由一个表示函数对象的表达式和0个多个参数表达式构成.将简单表达式组成复杂表达式最常用的方法就是运算符. 本章(本文)将讲解所有ja