php 运算符与表达式详细介绍
php 运算符与表达式
一、运算符的分类
1、按操作数分类
1.!true // 一元运算符
2.$a+$b // 二元运算符
3.true ? 1:0 // 三元运算符
2、按操功能分类
(1)算术运算符
1.+、-、x、/、%(取余)
(2)字符串运算符
1.. // 例如:$a = 'abc'.'efg';
(3)赋值运算符
1.= // 简单赋值
2.+=、-=、X=、/=、%=、.= // 复合赋值
3.++($a++、++$a)、 --($a--、--$a) // 递增递减
4.&($a = 1;$b = &a) // 引用赋值
(4)比较运算符
1.==、 ===(恒等于)、 !=、 !===、 <>(不等于)、 <、 >、 <=、 >=
(5)逻辑运算符
1.// 括号内的比括号外的优先级高
2.&&(and)、 ||(or)、 !(not)、 xor(异或)、
(6)位运算符
1.&(按位与)、 |(按位或)、 ~(按位非)、 ^(按位异或)、 <<(左位移)、 >>(右位移)
二、算术运算符
%取余,常见用法:1)整除运算 2)控制取值范围
实例:判断是否为闰年(四年一闰,百年不闰,四百年再闰)
// %会把两边的数转成整型后在整除 // %两边不能用小数或负数 if ((($year%4 == 0) && ($year%100 != 0)) || $year%400 == 0) echo "闰年"; else echo "平年";
三、赋值运算符
//先自身加10,然后赋值给自己,等价于 $a=$a+10 $a += 10; //前置递增递减,先递增递减再赋值 ++$a //先赋值,再递增递减 $a++ //实例 $a = 10; $b = $a++ $c = --$b 结果:a=11 b=9 c=9
四、逻辑运算符
xor异或:相同为假(两个真或两个假=假),不同为真(一真一假=假)
Tips:注意与or区别,or两个真=真
逻辑运算符短路
1、&& //一个为假,则后面不作运算,一定为假
2、|| //一个为真,则后面不作运算,一定为真
fopen ("test.php","r") or die("失败");
Tips:为运算符 & | 没有短路特性
五、位运算符
位操作:将整型转为32位二进制,字符串转为ANSCA码来处理
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
相关推荐
-
PHP字符串 ==比较运算符的副作用
复制代码 代码如下: $a = '212345678912000005'; $b = '212345678912000001'; var_dump($a == $b); 这段代码的输出是bool(true), 说明这样判断会得出结论是两者相等. 类似的特性在in_array()函数第3个参数为false或者不设置的情况. 原因是首先判断字符串是否是数字, 然后转换成long或者double(C语言数据类型)再判断 - 使用zendi_smart_strcmp. 但是, 源码中的注释说声明考虑了溢
-
PHP 作用域解析运算符(::)
Scope Resolution Operator (::) 今天 看joomla源码的时候,才意识到.原来这个操作符还可以访问类的非静态方法啊.真的让我吃惊不好.一直以为作用域解析运算符只能访问类的static方法和static成员变量. 如果各位不相信,下面有个简单的小测试代码可以证明这个. 复制代码 代码如下: class A{ private $_name = 'A'; function __construct(){ echo 'A construct <br />'; } funct
-
用PHP中的 == 运算符进行字符串比较
最近在Greg Beaver's的blog上发表的一篇新文章 comparing strings in PHP with the == operator 中提及了PHP的 == 运算符在对字符串进行比较时值得注意的问题. 在某些情况下,PHP会把类数值数据(如含有数字的字符串等)转换成数值处理,== 运算符就是其中之一.在使用 == 运算符对两个字符串进行松散比较时,PHP会把类数值的字符串转换为数值进行比较,下面的实验证实了这个结论:<?phpvar_dump('01' == 1);?> 以
-
php && 逻辑与运算符使用说明
例子:!defined('MAGIC_QUOTES_GPC') && define('MAGIC_QUOTES_GPC', get_magic_quotes_gpc()); o(︶︿︶)o 唉,很晕,今天问了N多的人.终于把"&&"东西给弄明白怎么回事了 运算符都没有判断就那样写什么意思,哎,原来如果前面的为假.后面的语句就不执行了.免得我们还费劲的写if 这样多简单... //简单说明,如果前面的判断为假后面的则不执行,如果是真,继续执行下面的定义常量
-
PHP三元运算符的结合性介绍
先看一个三元运算式子: 复制代码 代码如下: <?php $a=1;$b=2;$c=3;$d=4; echo $a<$b?'xx':$a<$c?'yy':$a<$d?'zz':'oo'; ?> 一般按照其它语言(比如C或Java)的规则, 以上代码的运算逻辑是: 复制代码 代码如下: $a<$b => true => 'xx' ==> 结束 那么最后得到的结果就是'xx', 而再往后的运算都会被无视. 然而令人吃惊的是, php运算以上代码最后得到的结
-
php三元运算符知识汇总
今天在改论文在线的时候遇到了一个语句看不懂: $if_summary = $row['IF_SUMMARY']==2?'是':'否'; 后来百度后发现是PHP的三元运算符 这句话的意思就等于是 if($row['IF_SUMMARY']==2){ $if_summary="是"; }else{ $if_summary="否": } 三元运算符的功能与"if...else"流程语句一致,它在一行中书写,代码非常精练.执行效率更高. 在PHP程序中恰
-
php下使用strpos需要注意 === 运算符
复制代码 代码如下: <?php /* 判断字符串是否存在的函数 */ function strexists($haystack, $needle) { return !(strpos($haystack, $needle) === FALSE);//注意这里的"===" } /* Test */ $mystring = 'abc'; $findme = 'a'; $pos = strpos($mystring, $findme); // Note our use of ===.
-
php foreach 使用&(与运算符)引用赋值要注意的问题
foreach 通过在 $value 之前加上 & 很容易就能修改数组的单元,如: PHP代码 复制代码 代码如下: foreach($arr as $value){ $value .= '4'; } 但这个用法也很容易造成错误,而且也不容易找. 看例子更直截了当: PHP代码 复制代码 代码如下: <?php $arr = array('a','b','c'); $arr2 = array('d', 'e', 'f'); foreach($arr as $value){//习惯用$valu
-
PHP常用特殊运算符号和函数总结(php新手入门必看)
注解符号: // 单行注解 多行注解引号的使用 ' ' 单引号,简单字符串,不经任何处理直接拿过来; " "双引号,php动态处理然后输出,一般用于处理$变量.布尔变量: 一种是true 即 真的; 另一种是false 即假的常见变量: string 字串(数字\汉字\等等) integer
-
php中的三元运算符使用说明
今天一个网友在群里发了个题目不难,但是可能会错 复制代码 代码如下: echo $a == 1 ? 'one' : $a == 2 ? 'two' : $a == 3 ? 'three' : $a == 4 ? 'foura' : 'other'; echo "\n"; 输出结果是: <BR> 结果是:four 一开始想不明白,按照我的理解,应该是这样的逻辑: echo ($a == 1 ? 'one' : ( $a == 2 ? 'two' : ( $a == 3 ? '
-
PHP学习 运算符与运算符优先级
算术运算符 运算符 名称 结果 $a + $b 加法 $a 和 $b 的和 $a - $b 减法 $a 和 $b 的差 $a * $b 乘法 $a 和 $b 的积 $a / $b 除法 $a 除以 $b 的商 $a % $b 取模 $a 除以 $b 的余数 递增/递减运算符 运算符 名称 结果 ++$a 前加 $a 的值
-
php合并数组array_merge函数运算符加号与的区别
array_merge在参考手册中的说明如下: array_merge() 将两个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面.返回作为结果的数组. 如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值.然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面. 两个的区别是: 1.数组键名为数字键名时,要合并的两个数组中有同名数字KEY的时候,使用array_merge()不会覆盖掉原来的值,而使用"+"合并数组则会把最先出现的值作为最终
随机推荐
- Angular.js自动化测试之protractor详解
- Android Scroller及下拉刷新组件原理解析
- golang中make和new的区别示例详解
- Chrome中JSON.parse的特殊实现
- vue-cli项目如何使用vue-resource获取本地的json数据(模拟服务端返回数据)
- 详解vue过滤器在v2.0版本用法
- 深入解析iOS应用开发中九宫格视图布局的相关计算方法
- ASP遗留的二十大积习
- php读取msn上的用户信息类
- 用PHP代码给图片加水印
- php入门学习知识点五 关于php数组的几个基本操作
- Python 返回汉字的汉语拼音
- PHP删除指定目录中的所有目录及文件的方法
- Android系统进程间通信(IPC)机制Binder中的Client获得Server远程接口过程源代码分析
- JS 动态添加列表框项效果代码
- 数据库的一些常用知识
- 提高 DHTML 页面性能
- JS小游戏之仙剑翻牌源码详解
- 斑马线效果代码
- c++ 尽量不要使用#define 而是用const、enum、inline替换。