当前位置:Gxlcms > PHP教程 > Java运算符php中的运算符、控制结构

Java运算符php中的运算符、控制结构

时间:2021-07-01 10:21:17 帮助过:3人阅读

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结束
代码展示

 php中的运算符、控制结构

  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.三大控制结构之顺序和分支

 php中的运算符、控制结构

以上就介绍了Java运算符 php中的运算符、控制结构,包括了Java运算符方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

人气教程排行