Discuz教程网

PHP学习之运算符相关概念

[复制链接]
authicon dly 发表于 2011-9-1 19:25:02 | 显示全部楼层 |阅读模式
代码如下:

  1. <?php
  2. /*运算符号(PHP)操作符号
  3. *
  4. * 按运算符号功能分为:
  5. * 一、算术运算符 + - * / % ++ --
  6. * 二、字符串运算符 . 连接运算符
  7. * 三、赋值运算符 = += -= *= /= %= .=
  8. * 四、比较运算符 > < >= <= == === != <> !==
  9. * 比较运算符---条件运算符---关系运算符
  10. * 比较后的结果只有一种:boolean true false
  11. * === 比较时不仅要求内容相同,也要求类型相同
  12. * !== 比较时内容不相同,也要求类型不相同
  13. * 五、逻辑运算符 &&或and ||或or !或not
  14. * 逻辑运算符只能操作bool型的值,返回的也是bool型的值
  15. * 六、位运算符 & | ^ ~ << >> >>>
  16. * 七、其他运算符 ? : `` @ => -> :: & $
  17. * `` 用来执行操作系统内核
  18. * @ 用来屏蔽掉错误信息
  19. * 建议使用“()”改变表达式的优先级别
  20. *
  21. * % 有两个目的:整除运算;控制范围,不要用小数,也不要用负数
  22. * % 会吧运算符两边的数转为整数后再进行整除求余。
  23. */
  24. //用 %符号判断闰年
  25. $year=2011;
  26. if(($year%4==0 && %year%100!=0) || $year%400=0)
  27. {
  28. echo "run nian";
  29. }
  30. else
  31. {
  32. echo " not run nian";
  33. }
  34. // ++ --符号的使用
  35. $a=10;
  36. $a++; //$a=$a+1; 先用变量,再自增1
  37. ++$a; //$a=$a+1; 先自增1,在用变量
  38. $a--; //$a=$a-1; 先用变量,再自减1
  39. --$a; //$a=$a-1; 先自减1,再用变量
  40. echo $a; //结果为10
  41. //++ -- 运算的区别
  42. $a=10;
  43. $b=$a++;//b=10,a=11
  44. $c=--$b;//c=9,b=9
  45. $d=$c++ + ++$c; //d=20,c=11
  46. $e=$d-- - --$d; //d=18,e=2
  47. echo $d;
  48. //字符串运算符 . 的使用
  49. $name="tom";
  50. $age=27;
  51. $height=1.75;
  52. echo "我的名字是:{$name}我的年龄是:{$age}我的身高是:{$height}米<br>";
  53. echo '我的名字是:'.$name.'我的年龄是:'.$age.'我的身高是:'.$height.'米'.'<br>';
  54. echo "\$age=".$age; //$age=27
  55. echo "我的名字是:{$name}我的年龄是:{$age}我的身高是:{$height}米<br>";//赋值运算符的使用
  56. $a=10;
  57. $a+=10; //$a=$a+10;
  58. $a-=10; //$a=$a-10;
  59. $a*=10; //...
  60. $a/=10; //...
  61. $a%=10; //$a=$a%10;
  62. $a.="abc";//$a=$a."abc";
  63. echo $a;
  64. $str='<table>';
  65. $str.='<tr>';
  66. $str.='<td>';
  67. $str.='</td>';
  68. $str.='</tr>';
  69. $str.='</table>';
  70. echo $str;//输出一个表格
  71. //比较运算符
  72. var_dump(15>6);//返回 bool(true)
  73. $a=15;
  74. if(15==$a)
  75. {
  76. echo "a=15";
  77. }
  78. else
  79. {
  80. echo "a!=15";
  81. }
  82. //逻辑运算符的使用
  83. var_dump(true && true);//true
  84. var_dump(true && false);//false
  85. var_dump(true || false);//true
  86. var_dump(!true);//false
  87. var_dump(!false);//true
  88. //判断用户名密码
  89. $username="admin";
  90. $password="123456";
  91. $email="290080604@qq.com";
  92. if($username=="admin" && $password="123456")
  93. {
  94. echo "用户名密码正确";
  95. }
  96. if($username=="" || $password=="" || $email=="")
  97. {
  98. echo "一个都不能为空";
  99. }
  100. //位运算符
  101. $a=20; //00010100
  102. $b=30; // 00011110
  103. /*
  104. * 20 00010100
  105. * 30 00011110 &
  106. *-----------------------------------
  107. * 00010100
  108. *
  109. */
  110. $c=$a & $b;
  111. echo $c;
  112. /*补充,& | 也可以用做逻辑运算
  113. * &&和||的 短路问题:
  114. * &&在作运算时,如果前面的数为false,则后面是否为true,整个表达式都为false,所以就不去执行后面的操作数;
  115. * ||在作运算时,如果前面的数为true,则后面的数是否为false,整个表达式都为true,所以就不去执行后面的操作数;
  116. * 然而,& 或者 | 在作运算时,两边都会被执行
  117. */
  118. $a=10;
  119. if($a>5 || $a++<100){}
  120. echo $a;//输出10
  121. $b=10;
  122. if($b>5 | $b++<100){}
  123. echo $b;//输出11
  124. /*
  125. 位的概念:一个位是由8个二进制数组成的(例00000000),
  126. 一个字节由8个位组成,那么就有32个二进制数。
  127. 原码:最高位 用0表示正数,1表示负数
  128. +7 00000111
  129. -7 10000111
  130. 反码:一个数如果为正,则它的反码与原码相同;
  131. 一个数如果为负,则符号位为1,其余各位是对原码取反;
  132. +7 00000111
  133. -7 11111000
  134. +0 00000000
  135. -0 11111111
  136. 补码:一个数如果为正,则它的补码与反码与原码相同
  137. 一个数如果为负,则它的补码=反码+1,去掉最高位的溢出位
  138. -7 原码 10000111  反码11111000
  139. +1
  140. 补码11111001
  141. 已知一个负数的补码,把它转换为十进制数。
  142. 1.先对各位取反
  143. 2.将其转换为十进制数
  144. 3.加上负号,再减去1。
  145. 例:补码11111010
  146. 取反00000101
  147. 4+1=5
  148. -5-1=-6
  149. 位运算符:
  150. & 按位与 |按位或 ^按位异或 ~按位取反
  151. 例: 按位与 01101101
  152. &00110111
  153. 00100101
  154. 结论:只有1 1为1。
  155. 按位或 01101101
  156. |00110111
  157. 01111111
  158. 结论:只有0 0为0。
  159. 按位异或 01101101
  160. ^00110111
  161. 01011010
  162. 结论:只有1 0或0 1时为1。(也可以理解为处于不同状态为1(真))
  163. 按位取反 ~00110111
  164. 11001000
  165. 结论:将0变1,1变0
  166. 移位运算符:
  167. 左移:<< 带符号右移:>> 无符号右移:>>>
  168. 例:数 x x<<2 x>>2 x>>>2
  169. 17 00010001 01000100 00000100 00000100
  170. -17 11101111 10111100 11111011 00111011
  171. 结论:正数左右移动都补0,负数左移补0,带符号右移补1,不带符号补0
  172. */
  173. //其他运算符的运用
  174. $a=10;
  175. $b=$a>5 ? $a : 5;//三元运算符,如果成立$b=$a否则$b=5
  176. echo $b;
  177. //用``来执行操作系统shell命令
  178. $str=`ipconfig /all`;
  179. echo '<pre>';
  180. echo $str;
  181. echo '</pre>';
  182. ?>
复制代码








上一篇:PHP学习之流程控制实现代码
下一篇:PHP结合表单实现一些简单功能的例子
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1314学习网 ( 浙ICP备10214163号 )

GMT+8, 2025-8-2 14:55

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表