php中的运算符
1. 赋值运算符
2. 算术运算符
3. 比较运算符
4. 字符串运算符
5. 递增运算符
6. 逻辑运算符(异或运算 xor )
7. 三元运算符
8. 位运算符 (移位运算)
10 . echo中','和'.' 的区别
9. 类型转换
1). 布尔值 --字符串
2). 字符串 -- 数字的转换
3). 字符串-- 布尔值的转换
4). 数字 - - 布尔值的转换
5). 数字 --字符串的转换
控制结构
1. if 单路分支
2. if /else 双路分支,双路分支中if/else 中的2 个代码段,必有且只有一段被执行
if/else if/else if……/else 多路分支
3. switch case ,用来比较判断的变量的多种可能值时便于用。
4. while (表达式){
代码段}
5. do{
代码段;}while(表达式);
6. for(语句1;语句2;语句3){
代码段;}
语句1,先执行 且只执行1次
然后 语句2判断,如为真,则执行 代码段; ,然后执行 语句3;
再语句2判断……循环
直到语句2为假,for结束
代码展示
1//==========================================
2 3//2. 算术运算 返回原处
4//
5//php程序如何进行加减乘除
6//依次是+ - 7 8 9$a = 3;
10$b =5;
11$c = $a + $b;//这语句话的含义是$a+$b计算结果赋给$c 12echo$c,'
';
13echo$b-$a,'
';
14 15echo$a * $b,'
';//计算$a * $b的结果 赋给$c 16echo$b/$a,'
';//计算$b/$a的结果,赋给$c
17 18//如果是在C语言中,$b,$a,都是整型,因此计算出来的$c也是整型
19//在php中,变量的值可以随意改变,而且变量的类型也可以改变。
20//
21//比如:变量$c是整型,可以突然为之赋一个浮点型值。
22//因此php称为动态语言。
23 24 25 26 27//----------------------------------------------------- 28求余就是 取模 运算 返回原处
29在计算机里计算除法的时候,算出来2个结果
30 31商和余数
32 33 */
34$a = 3;
35$b = 5;
36$c = $b%$a; // 得1 余2 37echo$c,'
';
38 39 40//小测试,判断一个数是偶数,还是奇数?
41//可以对2 取模,余数是1,则为奇数,如果余数为0,则为奇数 42 43$d = 3;
44$res = $d % 2;
45if($res == 1){
46echo$d,'是奇数';
47}
48if($res == 0){
49echo$d,'是偶数';
50}
51 52//上初中了,有了负数的概念 53 54$b = -5;
55$a = 3;
56echo$b%$a;
57$b = -5;
58$a = -3;
59echo$b%$a;
60 61//注意:在取模运算的时,
62//运算的正负结果,取决于被除数的符号
63//结果的符号,和被除数的符号一致
64//================================================
65 66 // 比较运算符 返回原处
67// > ,< ,<= ,>= ==,!= ,===(不仅值相等,而且类型也相等),!== 68$a = 3;
69$b = 2;
70if(3 > 2){
71echo '3大于2','
';
72 }else{
73echo '3不大于2','
';
74}
75 76if($a >= $b){ // >= 意味着,$a比$b大,或者 $a 等于$b 有一个为真都行,即条件满足 77echo '3大于等于2','
';
78 }else{
79echo '3并不大于等于2','
';
80}
81//----------------------------------------------- 82 83$a = 3;
84$b = '3';
85if($a === $b){
86echo$a,'全等于',$b,'
';
87 }else{
88echo$a,'不全等于',$b,'
';
89}
90 91//========================================== 92 93$a = 3;
94$b = true;
95if($a == $b){
96echo$a,'等于',$b,'
';
97 }else{
98echo$a,'不等于',$b,'
';
99}
100//在不同的类型比较时
101//php程序本身
102//
103//会把变量 转换成一致的类型,然后再去比较
104//
105//着重记以下转换 返回原处
106//1. 布尔值 --字符串
107//2. 字符串 -- 数字的转换
108//3. 字符串-- 布尔值的转换
109//4. 数字 - - 布尔值的转换
110//5. 数字 --字符串的转换
111//
112//以5 ==true 比较为例
113//的把 整型 ,转成布尔型
114//
115//其实有的语言中,根本就没有布尔型,都是拿1,0充当true / false
116//0 / 0.0 这两个转换为布尔类型为false
117//其他都是true ,负数也是true
118119120121122//-------------------------------------------
123//1. 布尔值 --字符串124true ---'1'
125false--- ''
126127//-------------------------------------------
128//1. 字符串 --数字的转换
129//从字符串左端开始找数字,直到第一个非数字结束,取出来的这一部分,即是转换后的值
130//'3q'----3131 '123asdf'---123
132 'sdfds789'----0
133134$num = 'sdfds789';
135echo$num + 0; //运算结果是0
136137//-------------------------------------------
138//3. 字符串 --布尔的转换
139//''字符串,'0',这种转换成 false
140//其他的一概是true141142143144if(''==false){
145echo '空字符串等于false';
146 }else{
147echo '空字符串不等于false';
148}
149150echo '
';
151if('0'==false){
152echo '字符串0等于false';
153 }else{
154echo '字符串0不等于false';
155}
156157158//-------------------------------------------
159//4. 字符串 --布尔的转换
160// 只有整型的0 ,和浮点的0.0 ,转换false
161//其他 ,甚至负数 ,也转换成true
162163164165//-------------------------------------------
166//5. 数字 --字符串的转换
167//直接是字面本身 168echo '
';
169echo 'aaa'. 2323;
170171172173//-------------------------------------------
174//字符串 返回原处
175176//在php中字符串,有一句运算,就是拼接 (echo中','和'.' 的区别)177178$str1 = 'hello';
179$str2 = '';
180181$str3 = 'world';
182echo$str1.$str2.$str3;
183echo$str1,$str2,$str3;
184185// 新手的疑问 186187echo$str1.$str2.$str3;
188//这一行是$str1,$str2,$str3在内存中拼接运算
189//运算出一个'hello world'一个大字符串,
190//然后echo 之,得到判断的结果 hello world
191//==========================================192193echo$str1,$str2,$str3;
194//echo 是个语句,负责
输出用的
195//可以通过','分割 一次输出多个变量或值来
196//
197//综上:
198//用' . '是先拼接,再整个输出
199//用' , ' 是挨个儿把3个变量输出。
200//
201//面试时,会碰到 会问法:
202//用' . ',用' , '那个输出的快,效率高
203//
204//答:当然是 ',' 输出快,效率高206//==========================================
207//赋值运算符,就是 = ,作用是,把‘=’右边的值,赋给左边变量 返回原处208$a = 3
;
209$b =
$c = 5
;
210211212//==========================================
213//运算符的运算结果
214//
215//大家想:既然是运算,运算完之后,必须得有一个结果 ---结果值
216//3 + 2; 运算结果5
217//
218//1. 比较运算符 返回原处
219//注意 :比较去处符返回结果,,只有2个可能 true/false
220//
221//以$a == $b 为例,,要么等,要么不等
222//要么是真,要么是假
223//2 ==3;运算结果是:false
224225//==========================================
226//2. 字符串运算符 返回原处
227//字符串运算符
228//$a.$b
229//返回结果:拼接后的结果
230231//==========================================
232//赋值运算符,返回值是多少呢?233$a = 3
;
234if(
$a = 33
){
235echo 'aa'
;
236 }
else{
237echo 'bb'
;
238}
239//赋值运算长符的运算结果,就是 =右边的值 240$a =
$b =
$c =88
241//过程是这样的, $b = 88先进行,赋值后返回88
242//返回的88,再赋给$c
243//同理 ……
244//最终$a也赋值为88
245//
246//
247//两个难点;
248//1. 比较运算时,有一个类型转换的问题
249//2. 凡运算,必有返回值
250//比较运算返回布尔值
251//
252//赋值运算,返回赋的值本身
253254//==========================================
255//6. 逻辑运算符 返回原处
256//
257//命题:
258//真命题,假命题
259//
260//逻辑运算符:逻辑或 || or
261//逻辑与 && and 262263$house = 180
;
264$car = 'BYD'
;
265266//$res = $house && $car == 'BMW'如果这样写,谁先给结合 ,牵涉到运算优先级的问题
267//我们推荐,在多个量进行去处的时候,需要先在一块的单元,用()包起来。如:$res = $house && ($car == 'BMW')
268//这样可以 使程序易读,易理解 ,不容易产生歧义 269if(
$res =
$house &&
$car == 'BMW'
){
270echo '还是可以嫁'
;
271 }
else{
272echo '再等两年'
;
273}
274275逻辑运算的优先级
276 && 的优先级 比 ||
高
277但是在开发中,不推荐写在一起,应用()包起来
278$a = 3
;
279$b = 5
;
280if((
$a==8)||(
$b=9
)){
281$a++
;
282$b++
;
283}
284echo$a,'
',
$b;
285286//==========================================
287288//逻辑反
289//一个命题如果是真命题,则其反命题,是假命题
290//用!表示 291292//==========================================
293//异或运算 xor 返回原处
294//异或是指,两个条件必须‘一个真’,‘一个假’,才为真295296$li = '男'
;
297$mei = '女'
;
298//这个异或表达的是,必须一个为男,299if(
$li == '男') xor (
$mei == '男'
){
300echo '可以结婚'
;
301 }
else{
302echo '法律禁止,请去北欧'
;
303}
304305306//==========================================
307//三元运算符 返回原处
308//
309//条件?返回值1:返回值2
310//如果条件为真,则返回值1,否则返回值2
311//
312//
313//比如,在网站中判断一个人有没有登陆
314//如果登陆,用户名不为空,则显示其用户名
315//如果没登陆,用户名空,则显示游客。。
316317//$user = 'zhangsan';
318//if(!=''){
319// echo $user;
320//}else{
321// echo '游客';
322//}
323//
324//$user = 'zhangsan';
325//echo $user?$user:'游客';
326327//程序如果没有三元运算符,可以用什么代替?
328//
329//可以用if/else代替
330//三元中是一个简化的写法
331//而且效率没有 if/esle高
332333334//==========================================
335//递增,递减运算符 返回原处
336//
337//就是语言中没有递增,递减,也不会影响我们写程序。
338//也是一些场景的简化写法
339340//分析,$b + 1是一个算术运算,算出的结果是3,这个3是一个‘算出结果’,和$b没有关系
341//这个算出结果,值给了$a
342//因此,$a为3,$b为2343$b = 2
;
344$a =
$b +1
;
345echo$a,'~',
$b,'
'
;
346347//$b++,这是一个递增运算,去处则必有去处结果,
348//问题: $b++的运算结果是什么?
349//答:$b++,运算结果是$b本身
350//然后再把$b的值+1
351//就相当于return $b; $b = $b +1;
352//$b =1;
353//$a = $b++;
354//echo $a,'
',$b;
355//
356//
357//==========================================358/*位运算符,说白了,就是,二进制运算符 返回原处
359//人有10个指头,用10进位,便于计算
360//
361//玛雅人,不穿鞋,连脚趾也算上,20进位
362//进位是多少没关系,关键是方便我们我们使用
363//
364//对于计算机来说,所有的位,都 只有两种状态 0 1
365//因为百进位上 ,1代表100
366//10进位上,1代表10
367//个位,1代表1
368//
369//我们知道计算机里的信息,都是以0,1来存储的
370//一个可以存储0/1单元,称为位bit
371//
372//8个位组成一个字节,Byte
373//字节是计算机里最基本的单位。
37437537612 = 8 + 4;
377 =1*2^3+1*2^2+0*2^1+0*2^0
378 =1100
3795=101
380但是计算机里,最基本的单位就是字节,有8个位,只用了3个怎么办?
381答:把用的3个或4个位,写在字节的右边
382左边的这些位,用0补上。
383因此,计算机里:
38412=0000 1100
3855 =0000 0101
38638738812 & 5 = 0000 0100 = 4
38912 | 5 = 0000 1101 = 13
39012 ^ 5 = 0000 1001 =9
391按位运算符
392&按位且 ,把2个二进制值齐,把1看成true ,把0看成false,然后每个位上都做 并且 的运算。
393|按位或 , 把2个二进制值齐,把1看成true ,把0看成false,然后每个位上都做 或者 的运算。
394395^按位异或 把2个二进制值齐,把1看成true ,把0看成false,然后每个位都不一样时做 异或 的运算。
396397398提醒大家:计算机是按位算,我们操作,往往直接10进制
399*/400//==========================================401402$a = 12
;
403$a = 0000 1100
404//按位求反405$a = 1111 0011
406echo ~12
407//计算机里表示负数,是用补码的规则来计算的
408//具体这样来计算负数,假设有8位
409//最高位是1,得出符号是负
410//
411//开始补码规则
412//计算除符号位之外,其他7位的绝对值
413//(1)111 0011 =115
414//然后把 绝对值-2^7 = 115 -128 = -13
415//
416//因此:
417//1000 0001 ---不要想当然是 -1
418//而是 1-2^7 = -127419 1111 1111 --- 127-128 = -1
420 1000 0000 --- 0-128 =-128
421422 0000 0000 --- 0
423 0111 1111 --- 127
424425//为什么有人问:-128 +127
426//
427//直观来理解
428//-128 --- 0 0 --- 127
429//位运算,掌握更好,掌握的不熟悉也不要纠结
430431432//==========================================
433//移位运算 返回原处434435 5 = 0000 0101
;
436 5 << 1;
//左移
437//相当于乘2的效果438 0000 1010;
//得到的结果是10 439 5 >> 1;
//右移440 0000 0010
441//相当于除2的效果
442443444//==========================================
445//之前学习了‘量’---变量,常量
446//量与量之间,可以运算,运算符
447//
448//如果只有量与量与的运算,那么我们学的知识只够做一个计算器
449450//==========================================
451//想写程序:还得有控制结构
452//
453//控制结构,就是条件与逻辑,控制代码的执行顺序
454//
455//程序员 是用php --- 培训 --- 计算机
456//如果 --- if
457//否则如果 ---else if
458//否则 ---- else 459$gender =
$_GET['gender'
];
460if(){
461 }
else{
462463}
464//==========================================
465466//有几种控制结构
467//答 : 1. 顺序 、 2. 分支 、 3. 循环
468//这个3种控制结构
469//所有语言都这样 返回原处
470471//==========================================
472// 1. 顺序
473// 顺序结构就是语句按照你书写的顺序,从前到后顺序执行。
474// 最容易理解 475echo 'a:8点了','
'
;
476echo 'b:来YY:88354001','
'
;
477echo 'c:我听懂了','
'
;
478echo 'd:我开始写博客了','
'
;
479480//==========================================
481// 2. 分支 返回原处482//顾名思义:有分支 ,就像一条大路,走了3岔口,该选择一个走下去了。
483//最简单的,单路分支
484485//单路分支 486$age = 18
;
487if(
$age >= 18
){
488echo '你已成年'
;
489 }
//这个if中的代码,要么执行,要么不执行
490//括号中的表达式,如果为真,则执行,否则,不执行491 -------------------------------------------
492//双路分支 if /else 493$year = 2012
;
494$birth = 1987
;
495$age =
$year -
$birth496if(
$age > 28
){
497echo '你是中老年'
;
498 }
else{
499echo '你是有为青年'
;
500}
501//if为真,则代码段1执行
502//if为假,则代码段2执行
503//if else 中的两个代码,有且只有一个执行。
504//-------------------------------------------
505//多路分支 506$age = 34
;
507if(
$age <=16
){
508echo '中年'
;
509 }
elseif(
$age > 16 &&
$age <= 28
){
510echo '老年'
;
511 }
elseif(
$age >28 &&
$age <=300
){
512echo '其他'
;
513}
514 -------------------------------------------
515//switch 分支语句 返回原处516517$day = 2
;
518if(
$day == 1
){
519echo '星期一'
;
520 }
elseif(
$day == 2
){
521echo '星期二'
;
522 }
elseif(
$day == 3
){
523echo '星期三'
;
524 }
elseif(
$day == 4
){
525echo '星期四'
;
526 }
elseif(
$day == 5
){
527echo '星期五'
;
528 }
elseif(
$day == 6
){
529echo '星期六'
;
530 }
elseif(
$day == 7
){
531echo '星期日'
;
532 }
else{
533echo '不存在'
;
534}
535//对于一个变量的值,有多种可能性,用if / if else 来比较,当然是可以的。
536//但是,有一种,更简单的分支结构来替换他537538539$day =2
;
540switch(
$day){
541case 1:
542echo '星期一'
;
543break;
544case 2:
545echo '星期二'
;
546break;
547case 3:
548echo '星期三'
;
549break;
550case 4:
551echo '星期四'
;
552break;
553case 5:
554echo '星期五'
;
555break;
556case 6:
557echo '星期六'
;
558break;
559case 7:
560echo '星期日'
;
561break;
562default:
563echo '其他'
;
564 }
//从上到下,判断$day和case指定的值,是否相等,如果相等,就执行以后的语句,否则就不执行。
565//因此,一定要用break退出
566//如果没用switch case的话我们可以用什么替换?
567//
568//答:if / else if else 来替换 ,
569//
570//问:switch case ,与,if/esle if/else 相比,各适合什么 样的场合?
571//switch case 只能判断某变量是否与指定的值相等
572//
573//比如:值 1,2,3,4……
574//但是不能用来判断范围
575//
576//而if/ else if /else 可用来判断 范围,甚至更复杂的判断表达式,也可以
577//而case ,却只能提供一个准备的值,和变量做相等的比较。
578//如果 需要和几个确认的值比较是否相等,适合用switch\
579580//==========================================
581582//循环结构
583//编程语言,一般都有for , while , do /while 循环
584//
585//先看while 返回原处586//while(表达式){
587// 语句;
588//}
589//判断表达式是否为真,如果为真,则执行语句
590//执行完语句之后,再回到while 开始处,判断表达式是否为真
591//如果为真……
592//…………
593//……
594//如果假,本次循环结束 595596$hard = 100
;
597$hit = -1
;
598599while(
$hard >= 30
){
600$hard =
$hard +
$hit;
601if(
$hard >=30
){
602echo '不服','
'
;
603 }
else{
604echo '服了','
'
;
605 }
606}
607echo$hard,'服了吧'
;
608 -------------------------------------------
609while(){
610 }
// 也有一次都不执行的,第一次条件就不成立,直接退出。611$hard = 20
;
612$hit = -1
;
613614while(
$hard >= 30
){
615$hard =
$hard +
$hit;
616if(
$hard >=30
){
617echo '不服','
'
;
618 }
else{
619echo '服了','
'
;
620 }
621}
622623//-------------------------------------------
624//
625//如果碰到下面的情况626while(
true){
627echo 'haha
'
;
628 }
//死循环629 -------------------------------------------
630do{ 返回原处631632 }
while();
633//do ,即执行,上来先执行一下语句,然后再去判断
634//所有,do/while 到至少执行一次635636$hard = 20
;
637$hit = -1
;
638do{
639$hard =
$hard +
$hit;
640if(
$hard >=30
){
641echo '不服','
'
;
642 }
else{
643echo '服了','
'
;
644 }
645 }
while(
$hard>=30
);
646647//==========================================
648//for(语句1;语句2;语句3){ 返回原处649// 代码段;
650//}
651//语句1,先执行 且只执行1次
652//然后 语句2判断,如为真,则执行 代码段; ,然后执行 语句3;
653//
654//再语句2判断……循环
655//直到语句2为假,for结束
656//
657//-------------------------------------------------------
658//打印1到100的整数,如果是3的倍数就打印Fizz,如果是5的倍数就打印Buzz
659//如果是3和5的倍数就打印abcd660$i = 0
;
661while(++
$i<=100
){
662if(
$i%15 == 0
){
663echo$i,'----abcd----即是3的倍数,又是5的倍数','
'
;
664 }
elseif(
$i%3 == 0
){
665echo$i,'----FiZZ----3的倍数','
'
;
666 }
elseif(
$i%5 == 0
){
667echo$i,'----BuZZ----5的倍数','
'
;
668 }
else{
669echo$i,'
'
;
670 }
671}
672 -------------------------------------------------------
673674//公鸡 5元1只,小鸡1元3只,母鸡 3元1只
675//100元买回100只,问公鸡,母鸡,小鸡各多少只?676for (
$g = 1;
$g<=20;
$g++
){
677for(
$m = 1;
$m<=34;
$m++
){
678$x = 100-
$g-
$m;
679if(5*
$g+3*
$m+
$x/3 == 100
){
680echo '公鸡',
$g,'只,','母鸡',
$m,'只,','小鸡,',
$x,'只,
'
;
681 }
682 }
683}
684//==========================================
685//
686//break 有破坏的意思,直接破坏整个循环语句,不再往下执行了。687688for(
$i = 1;
$i < 10;
$i++
){
689if(
$i == 6
){
690break;
691 }
else{
692echo$i,'
'
;
693 }
694}
695 --------------------------------------------------------
696//continue 有继续的意思,跳出本次循环,继续执行下一次循环697for(
$i = 1;
$i < 10;
$i++
){
698if(
$i == 6
){
699continue;
700 }
else{
701echo$i,'
'
;
702 }
703}
704705 --------------------------------------------------------
706//过收费站,手上有钱100,000元,当钱>50000时,交手上钱数的5%元,当钱数<=50,000时,每次交5000元,问能过几次?707for(
$i=0,
$money = 100000;
$money >= 5000;){
//看此处,第2个‘;’号后竟然是空//的708if(
$money>50000
){
709$money *= 0.95
;
710 }
else {
711$money -= 5000
;
712713 }
714$i+=1
;
715echo '第',
$i,'过桥后','剩下的钱数为',
$money,'
'
;
716}
717718719//如下720for(){
721echo 'haha'
;
722//别运行,死循环723}
724725726 */
相关的视频连接:
1. 位运算符 ,移位运算
2.三大控制结构之顺序和分支
以上就介绍了Java运算符 php中的运算符、控制结构,包括了Java运算符方面的内容,希望对PHP教程有兴趣的朋友有所帮助。