欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

php中的运算符、控制结构

程序员文章站 2022-06-09 11:26:51
...

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
 12 echo $c,'
'; 13 echo $b-$a,'
'; 14 15 echo $a * $b,'
';//计算$a * $b的结果 赋给$c 16 echo $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 37 echo $c,'
'; 38 39 40 //小测试,判断一个数是偶数,还是奇数? 41 //可以对2 取模,余数是1,则为奇数,如果余数为0,则为奇数 42 43 $d = 3; 44 $res = $d % 2; 45 if($res == 1){ 46 echo $d,'是奇数'; 47 } 48 if($res == 0){ 49 echo $d,'是偶数'; 50 } 51 52 //上初中了,有了负数的概念 53 54 $b = -5; 55 $a = 3; 56 echo $b%$a; 57 $b = -5; 58 $a = -3; 59 echo $b%$a; 60 61 //注意:在取模运算的时, 62 //运算的正负结果,取决于被除数的符号 63 //结果的符号,和被除数的符号一致 64 //================================================ 65 66 // 比较运算符 返回原处 67 // > ,= ==,!= ,===(不仅值相等,而且类型也相等),!== 68 $a = 3; 69 $b = 2; 70 if(3 > 2){ 71 echo '3大于2','
'; 72 }else{ 73 echo '3不大于2','
'; 74 } 75 76 if($a >= $b){ // >= 意味着,$a比$b大,或者 $a 等于$b 有一个为真都行,即条件满足 77 echo '3大于等于2','
'; 78 }else{ 79 echo '3并不大于等于2','
'; 80 } 81 //----------------------------------------------- 82 83 $a = 3; 84 $b = '3'; 85 if($a === $b){ 86 echo $a,'全等于',$b,'
'; 87 }else{ 88 echo $a,'不全等于',$b,'
'; 89 } 90 91 //========================================== 92 93 $a = 3; 94 $b = true; 95 if($a == $b){ 96 echo $a,'等于',$b,'
'; 97 }else{ 98 echo $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 118 119 120 121 122 //------------------------------------------- 123 //1. 布尔值 --字符串 124 true ---'1' 125 false--- '' 126 127 //------------------------------------------- 128 //1. 字符串 --数字的转换 129 //从字符串左端开始找数字,直到第一个非数字结束,取出来的这一部分,即是转换后的值 130 //'3q'----3 131 '123asdf'---123 132 'sdfds789'----0 133 134 $num = 'sdfds789'; 135 echo $num + 0; //运算结果是0 136 137 //------------------------------------------- 138 //3. 字符串 --布尔的转换 139 //''字符串,'0',这种转换成 false 140 //其他的一概是true 141 142 143 144 if(''==false){ 145 echo '空字符串等于false'; 146 }else{ 147 echo '空字符串不等于false'; 148 } 149 150 echo '
'; 151 if('0'==false){ 152 echo '字符串0等于false'; 153 }else{ 154 echo '字符串0不等于false'; 155 } 156 157 158 //------------------------------------------- 159 //4. 字符串 --布尔的转换 160 // 只有整型的0 ,和浮点的0.0 ,转换false 161 //其他 ,甚至负数 ,也转换成true 162 163 164 165 //------------------------------------------- 166 //5. 数字 --字符串的转换 167 //直接是字面本身 168 echo '
'; 169 echo 'aaa'. 2323; 170 171 172 173 //------------------------------------------- 174 //字符串 返回原处 175 176 //在php中字符串,有一句运算,就是拼接 (echo中','和'.' 的区别) 177 178 $str1 = 'hello'; 179 $str2 = ''; 180 181 $str3 = 'world'; 182 echo $str1.$str2.$str3; 183 echo $str1,$str2,$str3; 184 185 // 新手的疑问 186 187 echo $str1.$str2.$str3; 188 //这一行是$str1,$str2,$str3在内存中拼接运算 189 //运算出一个'hello world'一个大字符串, 190 //然后echo 之,得到判断的结果 hello world 191 //========================================== 192 193 echo $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; 210 211 212 //========================================== 213 //运算符的运算结果 214 // 215 //大家想:既然是运算,运算完之后,必须得有一个结果 ---结果值 216 //3 + 2; 运算结果5 217 // 218 //1. 比较运算符 返回原处 219 //注意 :比较去处符返回结果,,只有2个可能 true/false 220 // 221 //以$a == $b 为例,,要么等,要么不等 222 //要么是真,要么是假 223 //2 ==3;运算结果是:false 224 225 //========================================== 226 //2. 字符串运算符 返回原处 227 //字符串运算符 228 //$a.$b 229 //返回结果:拼接后的结果 230 231 //========================================== 232 //赋值运算符,返回值是多少呢? 233 $a = 3; 234 if($a = 33){ 235 echo 'aa'; 236 }else{ 237 echo '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 //赋值运算,返回赋的值本身 253 254 //========================================== 255 //6. 逻辑运算符 返回原处 256 // 257 //命题: 258 //真命题,假命题 259 // 260 //逻辑运算符:逻辑或 || or 261 //逻辑与 && and 262 263 $house = 180; 264 $car = 'BYD'; 265 266 //$res = $house && $car == 'BMW'如果这样写,谁先给结合 ,牵涉到运算优先级的问题 267 //我们推荐,在多个量进行去处的时候,需要先在一块的单元,用()包起来。如:$res = $house && ($car == 'BMW') 268 //这样可以 使程序易读,易理解 ,不容易产生歧义 269 if($res = $house && $car == 'BMW'){ 270 echo '还是可以嫁'; 271 }else{ 272 echo '再等两年'; 273 } 274 275 逻辑运算的优先级 276 && 的优先级 比 ||277 但是在开发中,不推荐写在一起,应用()包起来 278 $a = 3; 279 $b = 5; 280 if(($a==8)||($b=9)){ 281 $a++; 282 $b++; 283 } 284 echo $a,'
',$b; 285 286 //========================================== 287 288 //逻辑反 289 //一个命题如果是真命题,则其反命题,是假命题 290 //用!表示 291 292 //========================================== 293 //异或运算 xor 返回原处 294 //异或是指,两个条件必须‘一个真’,‘一个假’,才为真 295 296 $li = '男'; 297 $mei = '女'; 298 //这个异或表达的是,必须一个为男, 299 if($li == '男') xor ($mei == '男'){ 300 echo '可以结婚'; 301 }else{ 302 echo '法律禁止,请去北欧'; 303 } 304 305 306 //========================================== 307 //三元运算符 返回原处 308 // 309 //条件?返回值1:返回值2 310 //如果条件为真,则返回值1,否则返回值2 311 // 312 // 313 //比如,在网站中判断一个人有没有登陆 314 //如果登陆,用户名不为空,则显示其用户名 315 //如果没登陆,用户名空,则显示游客。。 316 317 //$user = 'zhangsan'; 318 //if(!=''){ 319 // echo $user; 320 //}else{ 321 // echo '游客'; 322 //} 323 // 324 //$user = 'zhangsan'; 325 //echo $user?$user:'游客'; 326 327 //程序如果没有三元运算符,可以用什么代替? 328 // 329 //可以用if/else代替 330 //三元中是一个简化的写法 331 //而且效率没有 if/esle高 332 333 334 //========================================== 335 //递增,递减运算符 返回原处 336 // 337 //就是语言中没有递增,递减,也不会影响我们写程序。 338 //也是一些场景的简化写法 339 340 //分析,$b + 1是一个算术运算,算出的结果是3,这个3是一个‘算出结果’,和$b没有关系 341 //这个算出结果,值给了$a 342 //因此,$a为3,$b为2 343 $b = 2; 344 $a = $b +1; 345 echo $a,'~',$b,'
'; 346 347 //$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 //字节是计算机里最基本的单位。 374 375 376 12 = 8 + 4; 377 =1*2^3+1*2^2+0*2^1+0*2^0 378 =1100 379 5=101 380 但是计算机里,最基本的单位就是字节,有8个位,只用了3个怎么办? 381 答:把用的3个或4个位,写在字节的右边 382 左边的这些位,用0补上。 383 因此,计算机里: 384 12=0000 1100 385 5 =0000 0101 386 387 388 12 & 5 = 0000 0100 = 4 389 12 | 5 = 0000 1101 = 13 390 12 ^ 5 = 0000 1001 =9 391 按位运算符 392 &按位且 ,把2个二进制值齐,把1看成true ,把0看成false,然后每个位上都做 并且 的运算。 393 |按位或 , 把2个二进制值齐,把1看成true ,把0看成false,然后每个位上都做 或者 的运算。 394 395 ^按位异或 把2个二进制值齐,把1看成true ,把0看成false,然后每个位都不一样时做 异或 的运算。 396 397 398 提醒大家:计算机是按位算,我们操作,往往直接10进制 399 */ 400 //========================================== 401 402 $a = 12; 403 $a = 0000 1100 404 //按位求反 405 $a = 1111 0011 406 echo ~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 = -127 419 1111 1111 --- 127-128 = -1 420 1000 0000 --- 0-128 =-128 421 422 0000 0000 --- 0 423 0111 1111 --- 127 424 425 //为什么有人问:-128 +127 426 // 427 //直观来理解 428 //-128 --- 0 0 --- 127 429 //位运算,掌握更好,掌握的不熟悉也不要纠结 430 431 432 //========================================== 433 //移位运算 返回原处 434 435 5 = 0000 0101; 436 5 //左移 437 //相当于乘2的效果 438 0000 1010; //得到的结果是10 439 5 >> 1; //右移 440 0000 0010 441 //相当于除2的效果 442 443 444 //========================================== 445 //之前学习了‘量’---变量,常量 446 //量与量之间,可以运算,运算符 447 // 448 //如果只有量与量与的运算,那么我们学的知识只够做一个计算器 449 450 //========================================== 451 //想写程序:还得有控制结构 452 // 453 //控制结构,就是条件与逻辑,控制代码的执行顺序 454 // 455 //程序员 是用php --- 培训 --- 计算机 456 //如果 --- if 457 //否则如果 ---else if 458 //否则 ---- else 459 $gender = $_GET['gender']; 460 if(){ 461 }else{ 462 463 } 464 //========================================== 465 466 //有几种控制结构 467 //答 : 1. 顺序 、 2. 分支 、 3. 循环 468 //这个3种控制结构 469 //所有语言都这样 返回原处 470 471 //========================================== 472 // 1. 顺序 473 // 顺序结构就是语句按照你书写的顺序,从前到后顺序执行。 474 // 最容易理解 475 echo 'a:8点了','
'; 476 echo 'b:来YY:88354001','
'; 477 echo 'c:我听懂了','
'; 478 echo 'd:我开始写博客了','
'; 479 480 //========================================== 481 // 2. 分支 返回原处 482 //顾名思义:有分支 ,就像一条大路,走了3岔口,该选择一个走下去了。 483 //最简单的,单路分支 484 485 //单路分支 486 $age = 18; 487 if($age >= 18 ){ 488 echo '你已成年'; 489 }//这个if中的代码,要么执行,要么不执行 490 //括号中的表达式,如果为真,则执行,否则,不执行 491 ------------------------------------------- 492 //双路分支 if /else 493 $year = 2012; 494 $birth = 1987; 495 $age = $year - $birth 496 if($age > 28){ 497 echo '你是中老年'; 498 }else{ 499 echo '你是有为青年'; 500 } 501 //if为真,则代码段1执行 502 //if为假,则代码段2执行 503 //if else 中的两个代码,有且只有一个执行。 504 //------------------------------------------- 505 //多路分支 506 $age = 34; 507 if( $age ){ 508 echo '中年'; 509 } else if($age > 16 && $age ){ 510 echo '老年'; 511 }else if( $age >28 && $age ){ 512 echo '其他'; 513 } 514 ------------------------------------------- 515 //switch 分支语句 返回原处 516 517 $day = 2; 518 if($day == 1){ 519 echo '星期一'; 520 }else if($day == 2){ 521 echo '星期二'; 522 }else if($day == 3){ 523 echo '星期三'; 524 }else if($day == 4){ 525 echo '星期四'; 526 }else if($day == 5){ 527 echo '星期五'; 528 }else if($day == 6){ 529 echo '星期六'; 530 }else if($day == 7){ 531 echo '星期日'; 532 }else{ 533 echo '不存在'; 534 } 535 //对于一个变量的值,有多种可能性,用if / if else 来比较,当然是可以的。 536 //但是,有一种,更简单的分支结构来替换他 537 538 539 $day =2; 540 switch($day){ 541 case 1: 542 echo '星期一'; 543 break; 544 case 2: 545 echo '星期二'; 546 break; 547 case 3: 548 echo '星期三'微信
  • php中的运算符、控制结构

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

    相关文章

    相关视频