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

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

1.       运算符的优先级

详见PHP手册

2.       算数运算符

算数运算符


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

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

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

<span style="font-size:14px;"><?php

echo (5 % 3)."\n";           // prints 2
echo (5 % -3)."\n";          // prints 2
echo (-5 % 3)."\n";          // prints -2
echo (-5 % -3)."\n";         // prints -2

?></span>


对于%的细节讲解

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

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


解决方案:

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

<span style="font-size:14px;"><span style="font-size:14px;"><?php
var_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"; // 输出 3
print "$b\n"; // 输出 3

$a = 4; // 修改 $a

print "$a\n"; // 输出 4
print "$b\n"; // 也输出 4,因为 $b 是 $a 的引用,因此也被改变
?></span></span>


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

<span style="font-size:14px;"><?php
class 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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值