【风马一族_php】PHP运算
运算
- 算术运算符
1 <?php 2 3 //加法 4 $num1 = 10; 5 $num2 = 43; 6 7 echo $num1 + $num2; 8 echo " "; 9 var_dump($num1 + $num2); 10 echo "<p />"; 11 ?> 12 13 结果 : 53 int(53)
1 <?php 2 3 //加法 4 $num1 = 10; 5 $num2 = 43; 6 7 echo $num1 - $num2; 8 echo " "; 9 var_dump($num1 - $num2); 10 echo "<p />"; 11 ?> 12 13 结果: -33 int(-33)
1 <?php 2 3 //加法 4 $num1 = 10; 5 $num2 = 43; 6 7 echo $num1 * $num2; 8 echo " "; 9 var_dump($num1 * $num2); 10 echo "<p />"; 11 ?> 12 13 430 int(430)
1 <?php 2 3 //加法 4 $num1 = 10; 5 $num2 = 43; 6 7 echo $num1 / $num2; 8 echo " "; 9 var_dump($num1 / $num2); 10 echo "<p />"; 11 ?> 12 13 结果:0.23255813953488 float(0.23255813953488)
1 <?php 2 3 //加法 4 $num1 = 10; 5 $num2 = 43; 6 7 echo $num1 % $num2; 8 echo " "; 9 var_dump($num1 % $num2); 10 echo "<p />"; 11 ?> 12 13 结果: 10 int(10)
- 赋值运算符
1 <?php 2 3 //赋值 4 $num =35; 5 6 echo $num; 7 ?> 8 9 结果: 35
1 <?php 2 3 //赋值 4 $num =35; 5 6 $num += $num; 7 8 echo $num; 9 ?> 10 11 结果 : 70
1 <?php 2 3 //赋值 4 $num =35; 5 6 $num -= $num; 7 8 echo $num; 9 ?> 10 11 结果: 0
1 <?php 2 3 //赋值 4 $num =35; 5 6 $num *= $num; 7 8 echo $num; 9 ?> 10 11 结果: 1225
1 <?php 2 3 //赋值 4 $num =35; 5 6 $num /= $num; 7 8 echo $num; 9 ?> 10 11 结果: 1
1 <?php 2 3 //赋值 4 $num =35; 5 6 $num %= $num; 7 8 echo $num; 9 ?> 10 11 结果: 0
1 <?php 2 3 //字符串连接 4 $num =35; 5 6 $num .= $num; 7 8 echo $num; 9 ?> 10 11 结果: 3535
- 逻辑运算符
1 <?php 2 3 $true = true; 4 $false =false; 5 6 // 与 && 逻辑运算符 7 var_dump($true && $true); 8 var_dump($true && $false); 9 var_dump($false && $false); 10 11 ?> 12 13 结果:bool(true) bool(false) bool(false)
1 <?php 2 3 $true = true; 4 $false =false; 5 6 // 或 || 逻辑运算符 7 var_dump($true || $true); 8 var_dump($true || $false); 9 var_dump($false || $false); 10 11 ?> 12 13 结果: bool(true) bool(true) bool(false)
1 <?php 2 3 $true = true; 4 $false =false; 5 6 // 非 ! 逻辑运算符 7 var_dump(!$true); 8 var_dump(!$false); 9 10 ?> 11 12 结果: bool(false) bool(true)
- 比较运算符
1 <?php 2 3 $num1 ="10"; 4 $num2 =10; 5 6 // 两个变量的值 是否相同 7 var_dump($num1==$num2); 8 9 $num3 =10; 10 $num4=10; 11 12 // 两个变量的值 是否相同 13 var_dump($num3==$num4); 14 ?> 15 16 结果: bool(true) bool(true)
1 <?php 2 3 $num1 ="10"; 4 $num2 =10; 5 6 // 两个变量的值、类型 是否相同 7 var_dump($num1===$num2); 8 9 $num3 =10; 10 $num4=10; 11 12 // 两个变量的值、类型 是否相同 13 var_dump($num3===$num4); 14 ?> 15 16 结果: bool(false) bool(true)
1 <?php 2 3 $num1 =65; 4 $num2 =10; 5 6 // 左边的类型 是否大于 右边的类型 7 var_dump($num1>$num2); 8 9 ?> 10 11 结果 : bool(true)
1 <?php 2 3 $num1 =65; 4 $num2 =10; 5 6 // 左边的类型 是否小于 右边的类型 7 var_dump($num1<$num2); 8 9 ?> 10 11 结果 : bool(false)
1 <?php 2 3 $num1 =60; 4 $num2 =10; 5 6 // 左边 是否大于等于 右边 7 var_dump($num1>=$num2); 8 9 ?> 10 11 结果: bool(true)
1 <?php 2 3 $num1 =60; 4 $num2 =10; 5 6 // 左边 是否小于等于 右边 7 var_dump($num1<=$num2); 8 9 ?> 10 11 结果: bool(false)
1 <?php 2 3 $num1 ="10"; 4 $num2 =10; 5 6 // 左边的值 是否不等于 右边的值 7 var_dump($num1!=$num2); 8 9 ?> 10 11 结果 : bool(false)
1 <?php 2 3 $num1 ="10"; 4 $num2 =10; 5 6 // 左边的类型 是否不等于 右边的类型 7 var_dump($num1!==$num2); 8 9 ?> 10 11 结果: bool(true)
- 错误抑制符
- 作用:将错误的内容,不提示出来
- 符号:@
- 用法:在引发错误的语句中,语句前加入@
- 效果:错误提示,不会显示到浏览器中
- 例子:
- 三元运算符
- 作用:判断语句,满足条件,就选择1;不满足条件,就选择2
- 符号: ? :
- 用法: 判断语句 ? 第一种结果:第二种结果
- 替代:可以替代简单的if/else
- 例子
- 自操作运算符
- 作用:自己操作自己的运算符
- 符号:
- 前置 ++ --
- 例子 ++num --num
- 后置 ++ --
- 例子 num++ num--
- 前置 ++ --
- 用途:循环语句,进行次数变化、变量增减
- 例子
1 <?php 2 3 $num1=10; 4 $num2=10; 5 $num3=10; 6 $num4=10; 7 8 //前置 ++ 9 echo ++$num1." "; 10 echo ++$num1."<br/>"; 11 12 //后置 ++ 13 echo $num2++." "; 14 echo $num2++."<br/>"; 15 16 //前置 -- 17 echo --$num3." "; 18 echo --$num3."<br/>"; 19 20 //后置 -- 21 echo $num4--." "; 22 echo $num4--." "; 23 24 ?> 25 26 结果: 27 11 12 28 10 11 29 9 8 30 10 9
- 字符串连接符
- 作用:连接字符串
- 符号: . .=
- . : 一个点将左边与右边连接在一起
- .= : 一个点将左边与右边连接在一起,并把结果赋值给左边
- 例子
1 <?php 2 3 $str1 ="You are "; 4 $str2 ="sows"; 5 6 echo $str1.$str2; 7 8 ?>
1 <?php 2 3 $str1 ="You are "; 4 $str2 ="sows"; 5 6 //用一个点,$str1与$str2连接在一起 7 $sum = $str1.$str2; 8 echo $sum; 9 echo "<br />"; 10 echo $str1; 11 echo "<hr />"; 12 13 //用 .= , $str1与str2连接在一起,并将结果赋给$str1 14 $str1.=$str2; 15 echo $str1; 16 ?> 17 18 结果: 19 You are sows 20 You are 21 -------------------------------------------- 22 You are sows
- 位运算符
- 作用:对系统硬盘上存储的位进行操作(实际操作是字节为单位),位运算在计算过程中,每个位的操作返回结果都是1或者0
- 符号:&、|、~、^、>>、<<
- & : 按位与 ,表示两个位都为1时,则返回1,否则返回0
- 例子: 1&1 --> 1 1&0-->0
- | :按位或 ,表示两个位中至少一个是1时,则返回1,否则返回0
- 例子: 1|0 --> 1
- ~:按位非(反码) ,表示一个十进制的数用二进制表示,然后0变1,1变0,再转化成十进制的数字
- 例子: ~0 --> -1 ~-1 --> 0
~1 --> -2 ~-2 --> 1
~2 --> -3 ~-3 --> 2
~3 --> -4 ~-4 --> 3
- 例子: ~0 --> -1 ~-1 --> 0
- ^: 按位异或,表示两个位的值不同时,则返回1,否则返回0
- 例子:1^0 -->1 1^1 -->0 0^0 -->1
- <<:按位左移,表示将整个字节向左移动,右边空出来的位用0补充
- 规则:a<<b
- 结果:a*(2的b次方)
- >>:按位右移,表示将整个字节向右移动,左边空出来的位用0补充
- 规则:a>>b
- 结果:a/(2的b次方)
- & : 按位与 ,表示两个位都为1时,则返回1,否则返回0
- 码
- 数值在系统内部(磁盘上的存储)
- 0: 0000 0000
- -0:1000 0000
- 系统在存储的时候,不是按照原来的二进制直接存储,而是进行转化后的补码形式进行存储
- 原码:一个十进制数转化成二进制数
- 反码:将原码按位取反,得到的二进制数
- 补码:在反码基础上加1,得到的二进制数
- 注意:正数的原码=反码=补码
- 例子
- //二进制的最左边的位:0表示正数
1
原码:0000 0000 0000 0001
反码:0000 0000 0000 0001
补码:0000 0000 0000 0001
//二进制的最左边的位:1表示负数
-1
原码:1000 0000 0000 0001
反码:0111 1111 1111 1110
补码:0111 1111 1111 1111
- //二进制的最左边的位:0表示正数
- 数值在系统内部(磁盘上的存储)
PHP代码的执行原理
1. PHP有一种专门来解释PHP语言的工具,叫做Zend引擎(zend引擎
2. 当php代码是嵌入到html代码中的时候的工作原理
流程控制
表达式:凡是有值返回的结构(语句)都可以称之为表达式
- 所有的值本身都可以是表达式
- 所有的运算符运算的结果也都是表达式
顺序结构
代码从上到下的顺序执行
例如:$a = 34;
$b = 64;
$sum = $a + $b;
分支结构
根据某种条件,来选择顺序的执行。代码间存在互斥性,以使代码间的执行,需要分情况处理
符号: if-else if-elseif switch
1.提问: if-else 与 if-elseif 有什么区别
循环结构
在有限次数内,重复运行相同的代码块
符号:while do-while for foreash
例子:
1 <?php 2 for($i=1; $i<10; ++$i){ 3 for($j=1; $j<=$i; ++$j){ 4 echo $i*$j."\t"; 5 } 6 echo "<br />"; 7 } 8 ?> 9 10 结果 11 1 12 2 4 13 3 6 9 14 4 8 12 16 15 5 10 15 20 25 16 6 12 18 24 30 36 17 7 14 21 28 35 42 49 18 8 16 24 32 40 48 56 64 19 9 18 27 36 45 54 63 72 81
函数
1.定义:一堆代码放在一起,让函数能够解决某种问题
2.类型:系统函数(直接调用)、自定义函数(程序员编写出来后,方可调用)
3.语法:
function 函数名(参数列表){
//函数体
//返回值
}
4.调用函数的方式:调用自定义函数与系统函数的方式相同
5.变量=函数名(参数列表) //当函数有返回值的情况,方可将函数的返回值赋值给变量
函数名(参数列表) //函数没有返回值的情况,直接使用函数即可,参数列表由函数当前的位置周边获取
6.函数:不区分大小分
函数命名:有两种方式
1. 驼峰法
2.小写英文+下划线
7.例子
1 <?php 2 3 4 5 function sows($row,$col) 6 { 7 for($i=1; $i<$row; ++$i){ 8 for($j=1; $j<=$i&&$j<=$col; ++$j){ 9 echo $i * $j ."\t"; 10 } 11 echo "<br />"; 12 } 13 14 } 15 16 $row =20; 17 $col = 9; 18 19 sows($row,$col); 20 21 22 ?> 23 24 结果 25 1 26 2 4 27 3 6 9 28 4 8 12 16 29 5 10 15 20 25 30 6 12 18 24 30 36 31 7 14 21 28 35 42 49 32 8 16 24 32 40 48 56 64 33 9 18 27 36 45 54 63 72 81 34 10 20 30 40 50 60 70 80 90 35 11 22 33 44 55 66 77 88 99 36 12 24 36 48 60 72 84 96 108 37 13 26 39 52 65 78 91 104 117 38 14 28 42 56 70 84 98 112 126 39 15 30 45 60 75 90 105 120 135 40 16 32 48 64 80 96 112 128 144 41 17 34 51 68 85 102 119 136 153 42 18 36 54 72 90 108 126 144 162 43 19 38 57 76 95 114 133 152 171
作用域
1.函数外的变量,无法直接在函数内使用
2.函数若要使用函数外的变量,
1.可以使用函数名的参数列表来引用
2.使用系统函数来实现
1 <?php 2 3 $number = 1000; 4 5 function sows() 6 { 7 //使用系统的函数,来调用函数外的变量 8 echo $GLOBALS['number']; 9 10 //使用调用函数外的变量 11 echo $number; 12 } 13 14 sows(); 15 16 echo $number; 17 ?> 18 19 结果 20 21 1000 //调用系统函数实现 22 //使用调用函数外的变量,没有结果返回 23 1000 //输出$number的值,
3.PHP提供一个关键字:global
1.global是将全局作用域的变量的地址,进行变量,然后在局部作用域内新建一个同名的变量名,将外部的地址赋值给局部变量
2.语法:global 变量名;
变量名 = 值;