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
- PHP学习笔记:3.PHP基本语法详解---运算符
- PHP学习笔记:1.PHP基本语法详解整型
- php学习笔记六:PHP-基本语法
- 我的php学习笔记(二)php基本数据类型、基本语法和基本运算类型及其应用
- PHP基本语法、变量、数据类型、运算符
- PHP基础学习笔记之基本语法
- php学习笔记—-基本语法
- PHP学习笔记(一) 基本语法
- php数学运算基本语法
- PHP学习笔记:PHP基本语法详解 2.bool型和浮点型和字符串
- php学习笔记(3):PHP基本语法和数据类型:
- PHP学习笔记——PHP的基本语法;
- PHP语法学习笔记
- php手册 笔记 基本语法
- php笔记----第二章 PHP基本语法
- PHP基本语法(二)—— 运算符
- [Lpp]php基本语法、常量、运算符、引用赋值
- php基本语法之位运算
- 私有继承
- 关于栈的基本操作
- html5---百度地图定位
- Dom4j的增删改查应用实例
- Oracle用户密码过期和用户被锁解决方法
- PHP学习笔记:3.PHP基本语法详解---运算符
- 成长日记 一 (面向对象设计)
- 冒泡排序
- type error:this constructor takes no arguments的错误提示(python)
- 进程和线程的区别
- 原局凶存,大运流年体现,早亡命例。
- WebRTC的问题
- hdu3047 Zjnu Stadium
- Python进阶(二)——Python对象类型