




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、算术运算符还记得学校里学到的基本数学知识吗?就和它们一样。 算术运算符除法运算符总是返回浮点数。只有在下列情况例外:两个操作数都是整数(或字符串转换成的整数)并且正好能整除,这时它返回一个整数。取模运算符的操作数在运算之前都会转换成整数(除去小数部分)。取模运算符 % 的结果和被除数的符号(正负号)相同。即 $a % $b 的结果和 $a 的符号相同。例如:二、赋值运算符基本的赋值运算符是“=”。一开始可能会以为它是“等于”,其实不是的。它实际上意味着把右边表达式的值赋给左边的运算数。赋值运算表达式的值也就是所赋的值。也就是说,“$a = 3”的值是 3。这样就可以做一些小技巧:对于数组 array,对有名字的键赋值是用“=”运算符。此运算符的优先级和其它赋值运算符相同。 在基本赋值运算符之外,还有适合于所有二元算术,数组集合和字符串运算符的“组合运算符”,这样可以在一个表达式中使用它的值并把表达式的结果赋给它,例如:注意赋值运算将原变量的值拷贝到新变量中(传值赋值),所以改变其中一个并不影响另一个。这也适合于在密集循环中拷贝一些值例如大数组。引用赋值PHP 支持引用赋值,使用“$var = &$othervar;”语法。引用赋值意味着两个变量指向了同一个数据,没有拷贝任何东西。三、位运算符位运算符允许对整型数中指定的位进行求值和操作。Example 1 整数的 AND,OR 和 XOR 位运算符?php/* * Ignore the top section, * it is just formatting to make output clearer. */$format = (%1$2d = %1$04b) = (%2$2d = %2$04b) . %3$s (%4$2d = %4$04b) . n;echo 以上例程会输出:- - - - result value op test - - - - Bitwise AND( 0 = 0000) = ( 0 = 0000) & ( 5 = 0101)( 1 = 0001) = ( 1 = 0001) & ( 5 = 0101)( 0 = 0000) = ( 2 = 0010) & ( 5 = 0101)( 4 = 0100) = ( 4 = 0100) & ( 5 = 0101)( 0 = 0000) = ( 8 = 1000) & ( 5 = 0101) Bitwise Inclusive OR( 5 = 0101) = ( 0 = 0000) | ( 5 = 0101)( 5 = 0101) = ( 1 = 0001) | ( 5 = 0101)( 7 = 0111) = ( 2 = 0010) | ( 5 = 0101)( 5 = 0101) = ( 4 = 0100) | ( 5 = 0101)(13 = 1101) = ( 8 = 1000) | ( 5 = 0101) Bitwise Exclusive OR (XOR)( 5 = 0101) = ( 0 = 0000) ( 5 = 0101)( 4 = 0100) = ( 1 = 0001) ( 5 = 0101)( 7 = 0111) = ( 2 = 0010) ( 5 = 0101)( 1 = 0001) = ( 4 = 0100) ( 5 = 0101)(13 = 1101) = ( 8 = 1000) ( 5 = 0101)四、比较运算符比较运算符,如同它们名称所暗示的,允许对两个值进行比较。如果比较一个数字和字符串或者比较涉及到数字内容的字符串,则字符串会被转换为数值并且比较按照数值来进行。此规则也适用于 switch 语句。当用 = 或 != 进行比较时则不进行类型转换,因为此时类型和数值都要比对。 truevar_dump(1 = 01); / 1 = 1 - truevar_dump(10 = 1e1); / 10 = 10 - truevar_dump(100 = 1e2); / 100 = 100 - trueswitch (a) case 0: echo 0; break;case a: / never reached because a is already matched with 0 echo a; break;?标准数组比较代码?php/ 数组是用标准比较运算符这样比较的function standard_array_compare($op1, $op2) if (count($op1) count($op2) return -1; / $op1 count($op2) return 1; / $op1 $op2 foreach ($op1 as $key = $val) if (!array_key_exists($key, $op2) return null; / uncomparable elseif ($val $op2$key) return 1; return 0; / $op1 = $op2?五、执行运算符PHP 支持一个执行运算符:反引号()。注意这不是单引号!PHP 将尝试将反引号中的内容作为外壳命令来执行,并将其输出信息返回(例如,可以赋给一个变量而不是简单地丢弃到标准输出)。?php$output = ls -al;echo $output;?Note: 反引号运算符在激活了安全模式或者关闭了 shell_exec() 时是无效的。六、递增/递减运算符PHP 支持 C 风格的前后递增与递减运算符。Note: 递增递减运算符不影响布尔值。递减 NULL 值也没有效果,但是递增 NULL 的结果是 1。一个简单的示例脚本:?phpecho Postincrement;$a = 5;echo Should be 5: . $a+ . n;echo Should be 6: . $a . n;echo Preincrement;$a = 5;echo Should be 6: . +$a . n;echo Should be 6: . $a . n;echo Postdecrement;$a = 5;echo Should be 5: . $a- . n;echo Should be 4: . $a . n;echo Predecrement;$a = 5;echo Should be 4: . -$a . n;echo Should be 4: . $a . n;?在处理字符变量的算术运算时,PHP 沿袭了 Perl 的习惯,而非 C 的。例如,在 Perl 中 Z+1 将得到 AA,而在 C 中,Z+1 将得到 (ord(Z) = 90,ord() = 91)。注意字符变量只能递增,不能递减,并且只支持纯字母(a-z 和 A-Z)。涉及字符变量的算数运算:?php$i = W;for ($n=0; $n以上例程会输出:XYZAAABAC七、逻辑运算符“与”和“或”有两种不同形式运算符的原因是它们运算的优先级不同逻辑运算符示例:以上例程的输出类似于:bool(true)bool(false)bool(false)bool(true)八、字符串运算符有两个字符串运算符。第一个是连接运算符(“.”),它返回其左右参数连接后的字符串。第二个是连接赋值运算符(“.=”),它将右边参数附加到左边的参数后。九、数组运算符+ 运算符把右边的数组元素(除去键值与左边的数组元素相同的那些元素)附加到左边的数组后面,但是重复的键值不会被覆盖。 apple, b = banana);$b = array(a = pear, b = strawberry, c = cherry);$c = $a + $b; / Union of $a and $becho Union of $a and $b: n;var_dump($c);$c = $b + $a; / Union of $b and $aecho Union of $b and $a: n;var_dump($c);?执行后,此脚本会显示:Union of $a and $b:array(3) a= string(5) apple b= string(6) banana c= string(6) cherryUnion of $b and $a:array(3) a= string
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论