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码来处理

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

(0)

相关推荐

  • 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()不会覆盖掉原来的值,而使用"+"合并数组则会把最先出现的值作为最终

随机推荐