PHP学习笔记:3.PHP基本语法详解---运算符

来源:互联网 发布:乐视电视mac地址 编辑:程序博客网 时间:2024/04/30 04:46

PHP学习笔记:PHP基本语法详解
                                              ---运算符

1.       运算符的优先级

详见PHP手册

2.       算数运算符

算数运算符


除法运算符总是返回浮点数

取模运算符的操作数在运算之前都会转换成整数(除去小数部分)。

取模运算符 % 的结果和被除数的符号(正负号)相同。即 $a % $b 的结果和$a 的符号相同。例如:

<span style="font-size:14px;"><?phpecho (5 % 3)."\n";           // prints 2echo (5 % -3)."\n";          // prints 2echo (-5 % 3)."\n";          // prints -2echo (-5 % -3)."\n";         // prints -2?></span>


对于%的细节讲解

当对一个大数取模时(即超过PHP_INT_MAX)会出现错误:

<span style="font-size:14px;"><span style="font-size:14px;"><?phpvar_dump(5555555555555%5);//结果是int  -4,而正确结果应该是int 0;?></span></span>


解决方案:

用fmod()代替%, fmod — 返回除法的浮点数余数

<span style="font-size:14px;"><span style="font-size:14px;"><?phpvar_dump(fmod(5555555555555,5));//结果是float 0;?></span></span>


这是因为PHP的float其实是double,甚至在32位系统,可以准确地代表整数52字节,

 

3.       赋值运算符                                                                                      

基本的赋值运算符是"="。                                                                                                                 

对于数组 array,对有名字的键赋值是用"=>"运算符。

此运算符的优先级和其它赋值运算符相同。                                                                                                                              

 组合运算符                                                                                                                                               

  +=

-=

*=

/=

%=

.=

引用赋值:

<span style="font-size:14px;"><span style="font-size:14px;"><?php$a = 3;$b = &$a; // $b 是 $a 的引用print "$a\n"; // 输出 3print "$b\n"; // 输出 3$a = 4; // 修改 $aprint "$a\n"; // 输出 4print "$b\n"; // 也输出 4,因为 $b 是 $a 的引用,因此也被改变?></span></span>


注意:自 PHP 5 起,new运算符自动返回一个引用,因此再对new 的结果进行引用赋值在 PHP 5.3 以及以后版本中会发出一条E_DEPRECATED错误信息,在之前版本会发出一条E_STRICT 错误信息。

<span style="font-size:14px;"><?phpclass C {}/* The following line generates the following error message: * Deprecated: Assigning the return value of new by reference is deprecated in... */$o = &new C;?></span>


4.位运算符           

                                                                                     

5.递增/递减运算符                                                                             

  PHP递增/递减运算符不影响布尔值。递减NULL 值也没有效果,但是递增NULL 的结果是1。     


在处理字符变量的算数运算时,PHP 沿袭了 Perl 的习惯,而非 C 的。例如,在 Perl 中$a = 'Z'; $a++; 将把$a 变成'AA',而在 C 中,a = 'Z'; a++; 将把a 变成 '[''Z' 的 ASCII 值是 90,'[' 的 ASCII 值是 91)。注意字符变量只能递增,不能递减,并且只支持纯字母(a-z 和 A-Z)。递增/递减其他字符变量则无效,原字符串没有变化。                                                                                                                                                                                                                                                                                                        

6.       逻辑运算符                                                                       


7.       字符串运算符                                                                                  

有两个字符串(string)运算符。第一个是连接运算符("."),它返回其左右参数连接后的字符串。第二个是连接赋值运算符(".="),它将右边参数附加到左边的参数之后。                                                                         
   <?php$a = "Hello ";$b = $a . "World!"; // now $b contains "Hello World!"$a = "Hello ";$a .= "World!";     // now $a contains "Hello World!"?>

8.       数组运算符    

+ 运算符把右边的数组元素附加到左边的数组后面,两个数组中都有的键名,则只用左边数组中的,右边的被忽略。  


                                                                                

9.       类型运算符instanceof

a)    对类使用 instanceof

b)    对继承类使用instanceof

c)    使用 instanceof 检查对象不是某个类的实例

d)    对接口使用 instanceof

e)    对其它变量使用instanceof

f)     instanceof 检测其它变量

g)    避免 PHP 5.0 中 instanceof 引起的类名查找和致命错误问题

 

                                     

0 0