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结束
代码展示
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 '星期三'微信分享
声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
相关文章
相关视频
上一篇: Python正则表达式指南
推荐阅读
-
PHP中is_file不能替代file_exists的理由_php技巧
-
为什么 PHP 的学习过程感觉痛苦,但 .NET 的学习过程中,却能感到积极主动的兴趣?
-
解决RHAS3中Apache2的PHP上传文件大小的限制_php基础
-
photoshop学习心得 php学习笔记 php中面向对象三大特性之一[封装性]的应用
-
ubuntu 装配xampp,将php.ini文件中的allow_call_time_pass_reference=On后,打开网页提示下载保存网页不解析PHP
-
编写PHP脚本来实现WordPress中评论分页的功能
-
*控制MT首页显示文章的数量_PHP教程
-
PHP中获取内网用户MAC地址(WINDOWS/linux)的实现代码_PHP教程
-
php中构造方法的功能是什么
-
WordPress主题制作中自定义头部的相关PHP函数解析_PHP