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'---123132 'sdfds789'----0133134$num = 'sdfds789';135echo$num + 0; //运算结果是0 136137//-------------------------------------------138//3. 字符串 --布尔的转换139//''字符串,'0',这种转换成 false140//其他的一概是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 ,转换false161//其他 ,甚至负数 ,也转换成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; 运算结果5217//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 =88241//过程是这样的, $b = 88先进行,赋值后返回88242//返回的88,再赋给$c 243//同理 ……244//最终$a也赋值为88245//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:返回值2310//如果条件为真,则返回值1,否则返回值2311//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//这个算出结果,值给了$a342//因此,$a为3,$b为2343$b = 2;344$a = $b +1;345echo$a,'~',$b,'
';346347//$b++,这是一个递增运算,去处则必有去处结果,348//问题: $b++的运算结果是什么?349//答:$b++,运算结果是$b本身350//然后再把$b的值+1351//就相当于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 1365//因为百进位上 ,1代表100366//10进位上,1代表10367//个位,1代表1368//369//我们知道计算机里的信息,都是以0,1来存储的370//一个可以存储0/1单元,称为位bit371//372//8个位组成一个字节,byte373//字节是计算机里最基本的单位。37437537612 = 8 + 4;377 =1*2^3+1*2^2+0*2^1+0*2^0378 =11003795=101380但是计算机里,最基本的单位就是字节,有8个位,只用了3个怎么办?381答:把用的3个或4个位,写在字节的右边382左边的这些位,用0补上。383因此,计算机里:38412=0000 11003855 =0000 010138638738812 & 5 = 0000 0100 = 438912 | 5 = 0000 1101 = 1339012 ^ 5 = 0000 1001 =9391按位运算符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 1100404//按位求反405$a = 1111 0011406echo ~12407//计算机里表示负数,是用补码的规则来计算的408//具体这样来计算负数,假设有8位409//最高位是1,得出符号是负410//411//开始补码规则 412//计算除符号位之外,其他7位的绝对值413//(1)111 0011 =115414//然后把 绝对值-2^7 = 115 -128 = -13415//416//因此:417//1000 0001 ---不要想当然是 -1418//而是 1-2^7 = -127419 1111 1111 --- 127-128 = -1420 1000 0000 --- 0-128 =-128421422 0000 0000 --- 0423 0111 1111 --- 127424425//为什么有人问:-128 +127426//427//直观来理解428//-128 --- 0 0 --- 127429//位运算,掌握更好,掌握的不熟悉也不要纠结430431432//==========================================433//移位运算 返回原处434435 5 = 0000 0101;436 5 //左移437//相当于乘2的效果438 0000 1010; //得到的结果是10 439 5 >> 1; //右移440 0000 0010441//相当于除2的效果442443444//==========================================445//之前学习了‘量’---变量,常量 446//量与量之间,可以运算,运算符447//448//如果只有量与量与的运算,那么我们学的知识只够做一个计算器449450//==========================================451//想写程序:还得有控制结构452//453//控制结构,就是条件与逻辑,控制代码的执行顺序454//455//程序员 是用php --- 培训 --- 计算机 456//如果 --- if457//否则如果 ---else if458//否则 ---- 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 ){508echo '中年';509 } elseif($age > 16 && $age ){510echo '老年';511 }elseif( $age >28 && $age ){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的倍数就打印buzz659//如果是3和5的倍数就打印abcd660$i = 0;661while(++$i){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$g++){677for($m = 1;$m$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 $i++){689if($i == 6){690break;691 }else{692echo$i,'
';693 }694}695 --------------------------------------------------------696//continue 有继续的意思,跳出本次循环,继续执行下一次循环697for($i = 1;$i $i++){698if($i == 6){699continue;700 }else{701echo$i,'
';702 }703}704705 --------------------------------------------------------706//过收费站,手上有钱100,000元,当钱>50000时,交手上钱数的5%元,当钱数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教程有兴趣的朋友有所帮助。