• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

php中的运算符、控制结构

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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,'<br />';
 13 echo $b-$a,'<br />';
 14 
 15 echo $a * $b,'<br />';//计算$a * $b的结果 赋给$c 
 16 echo $b/$a,'<br />';//计算$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,'<br />';
 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','<br />';
 72 }else{
 73 echo '3不大于2','<br />';
 74 }
 75  
 76 if($a >= $b){    //  >=  意味着,$a比$b大,或者  $a 等于$b 有一个为真都行,即条件满足 
 77 echo '3大于等于2','<br />';
 78 }else{
 79 echo '3并不大于等于2','<br />';
 80 }
 81 //-----------------------------------------------
 82 
 83 $a = 3;
 84 $b = '3'; 
 85  if($a === $b){   
 86 echo $a,'全等于',$b,'<br />';
 87 }else{
 88 echo $a,'不全等于',$b,'<br />';
 89 }
 90  
 91 //==========================================
 92 
 93 $a = 3;
 94 $b = true; 
 95  if($a == $b){    
 96 echo $a,'等于',$b,'<br />';
 97 }else{
 98 echo $a,'不等于',$b,'<br />';
 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 '<br />';
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 '<br />';
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,'<br />',$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,'<br />';
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,'<br />',$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 << 1; //左移
437 //相当于乘2的效果
438   0000 1010; //得到的结果是10  
439 5 >> 1; //右移
440 0000 0010
441 //相当于除2的效果
442 
443 
444 //==========================================
445 //之前学习了‘量’---变量,常量 
446 //量与量之间,可以运算,运算符
447  
                       
                    
                    

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
PHP中unset和null的比较发布时间:2022-07-10
下一篇:
php常用的7大框架发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap