运算符php
① 在php中【逻辑运算符】和【位运算符】有什么本质的区别
这个很难细说,不过和C语言中的逻辑运算符和位运算符是一样区别的
下面给个参考(摘至某人博客):
一、逻辑运算符:
包括:1。&&逻辑与 2。||逻辑或 3。!逻辑非
逻辑运算符用于对包含关系运算符的表达式进行合并或取非
对于使用逻辑运算符的表达式,返回0表示“假”,返回1表示“真”。关于逻辑运算符的解释
请注意:任何使用两个字符做符号的运算符,两字符之间不应有空格,即将==写成= =是错误的。
假设一个程序在同时满足条件a<10和b==7时,必须执行某些操作。应使用关系运算符和逻辑运算符“与”来写这个
条件的代码。用&&表示“与”运算符,该条件代码如下:
(a<10) && (b==7);
类似地,“或”是用于检查两个条件中是否有一个为真的运算符。它由两个连续的管道符号(||)表示。如果上例
改为:如果任一语句为真,则程序需执行某些操作,则条件代码如下:
(a<10) || (b==7);
第三个逻辑运算符“非”用一个感叹号(!)表示。这个运算符对表达式的真值取反。例如,如果变量s小于10,程序
程序需执行某些操作,则条件代码如下:
(s<10)
或
(!(s>=10)) //s不大于等于10
关系运算符和逻辑运算符的优先级一般都低于算术运算符。例如,5>4+3的计算与5>(4+3)运算符是一样的,即
先计算4+3,再执行关系运算。此表达示的结果为“假”,即,将返回0。
下面的语句
printf("%d",5>4+3);
将输出 0
可以总结为:&&的结果是真真为真。||的结果是假假为假。
二、位运算符:
包括:1。&位与符 2。|位或符 3。^位异或符 4。~位取反符
以操作数12为例。位运算符将数字12视为1100。位运算符将操作数视为位而不是数值。数值
可以是任意进制的:十进制、八进制或十六进制。位运算符则将操作数转化为二进制,并相应地返回1或0。
位运算符将数字视为二进制值,并按位进行相应运算,运算完成后再重新转换为数字。例如:
表达式10&15表示(1010 & 1111),它将返回表示1010的值10。因为真真得真,或者是11得1,同位全是1结果也是1
表达式10|15表示(1010 | 1111),它将返回表示1111的值15。假假得假。全零得零。
表达式10^15表示(1010 ^ 1111), 它将返回表示0101的值5。此时是同性相斥,相同的就为假。
表达式~10表示(~1010),它将返回表示0101的值 -11。此号好理解,按位取反
② PHP中:什么意思
PHP中“?:”指的是三目运算符。
三目运算符,又称条件运算符,是计算机语言的重要组成部分。它是唯一有3个操作数的运算符,所以有时又称为三元运算符。
一般来说,三目运算符的结合性是右结合的。三目运算符提供了一种表达简单 if-else 语句的简写方法。该运算符由问号(?)和冒号(:)组成,其格式如下:表达式 ? 表达式 : 表达式 ;语句被称为条件表达式,它由 3 个子表达式组成,使用问号 ? 和冒号 : 分隔。问号前面的条件表达式的部分是要测试的条件。这就像 if 语句的括号中的表达式。如果条件是真的,则执行 ? 和 : 之间的语句;否则,执行 : 之后的部分。如果认为有帮助,可以在子表达式周围放置圆括号。
③ .=在php中是什么意思,
一、=>,->的意思:
->是对象执行方法或取得属性用的。
=>是数组里键和值对应用的。
二、用法
1、=> 的用法数组中用于数组的key和value之间的关系例如:
$a=array('0'=>'1','2'=>'4',);echo$a['0'];echo$a['2'];
2、-> 的用法类中用于引用类实例的方法和属性例如:
classTest{functionadd(){return$this->var++;}var$var=0;}$a=newTest;
//实例化对象名称
echo$a->add();echo$a->var;
(3)运算符php扩展阅读
PHP中->代码如下:
<?php
class Car {
public $speed = 0;
//增加speedUp方法,使speed加10
public function speedUp(){
$this->speed+=10;
}
}
$car = new Car();
$car->speedUp();
echo $car->speed;
?>
PHP中=>代码如下:
<?php
//从数组变量$arr中,读取键为apple的值
$arr = array('apple'=>"苹果",'banana'=>"香蕉",'pineapple'=>"菠萝");
$arr0=$arr["apple"];
if( isset($arr0) )
{print_r($arr0);
}
?>
④ php 中的:是什么意思啊
PHP中“?:”指的是三目运算符。
三目运算符,也称为条件运算符,它是计算机语言的重要组成部分。它是唯一具有3个操作数的运算符,因此有时称为三元运算符。通常,三目算子春腊桐的组合是扒坦右边界。
三目运算符提供了一种表达简单if-else语句的简便方法。运算符由以下格式的问号(?)和冒号(:)组成:表达式?表达式:表达式;一条语句称为条件表达式,由3个子表达式组成,并使用问号?和冒号:分开。
条件表达式中问号之前的部分是要测试的条件。这就像if语句括号中的表达式。如果条件为真,则执行?之间的语句。和:;否则,执行以下部分。如果您认为有帮助,可以在子表达式两边加上括号
(4)运算符php扩展阅读:
<php>函数的操作规则
1、对于条件表达式b? x:y,首先计算局笑条件b,然后判断。如果b的值为true,则计算x的值,并且运算的结果为x的值;否则,计算出y的值,并且运算的结果是y的值。
2、条件表达式永远不会同时计算x和y。条件运算符是右关联的,即从右到左分组。例如,一个? b:c? d:e将被执行为? b:(c→d:e)。
3、可以理解为:条件?结果1:结果2,在里面?该数字是格式要求。也可以理解为条件是否为真,条件成立为结果1,否则为结果2。
⑤ php中的运算符优先级是什么样的
下表按照优先级从高到低列出了运算符。同一行中的运算符具有相同优先级,此时它们的结合方向决定求值顺序。
运算符优先级
结合方向
运算符
附加信息
无
clone new
clone 和 new
左
[
array()
右
**
算术运算符
右
++
--
~
(int)
(float)
(string)
(array)
(object)
(bool)
@
类型和递增/递减
无
instanceof
类型
右
!
逻辑运算符
左
*
/
%
算术运算符
左
+
-
.
算术运算符和字符串运算符
左
<<
>>
位运算符
无
<
<=
>
>=
比较运算符
无
==
!=
===
!==
<>
<=>
比较运算符
左
&
位运算符和引用
左
^
位运算符
左
|
位运算符
左
&&
逻辑运算符
左
||
逻辑运算符
左
??
比较运算符
左
? :
ternary
right
=
+=
-=
*=
**=
/=
.=
%=
&=
|=
^=
<<=
>>=
赋值运算符
左
and
逻辑运算符
左
xor
逻辑运算符
左
or
逻辑运算符
Example #1 结合方向
<?php
$a = 3 * 3 % 5; // (3 * 3) % 5 = 4
// ternary operator associativity differs from C/C++
$a = true ? 0 : true ? 1 : 2; // (true ? 0 : true) ? 1 : 2 = 2
$a = 1;
$b = 2;
$a = $b += 3; // $a = ($b += 3) -> $a = 5, $b = 5
?>
Operator precedence and associativity only determine how expressions
are grouped, they do not specify an order of evaluation. PHP does not
(in the general case) specify in which order an expression is evaluated
and code that assumes a specific order of evaluation should be avoided,
because the behavior can change between versions of PHP or depending on
the surrounding code.
Example #2 Undefined order of evaluation
<?php
$a = 1;
echo $a + $a++; // may print either 2 or 3
$i = 1;
$array[$i] = $i++; // may set either index 1 or 2
?>
Note:
尽管 = 比其它大多数的运算符的优先级低,PHP
仍旧允许类似如下的表达式:if (!$a = foo()),在此例中
foo() 的返回值被赋给了 $a。
⑥ PHP语言PHP语言里的位运算符&、|、^ 、~、〈〈 、〉〉这些符号我一个也不懂,希望高手给个全面的解释!拜
"&" 按位与运算
按位与运算符"&"是双目运算符。其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1,否则为0。参与运算的数以补码方式出现。
例如:9&5可写算式如下:
00001001 (9的二进制补码)
&00000101 (5的二进制补码)
00000001 (1的二进制补码)
<?php
$a = 9;
$b = 5;
echo sprintf("%b", $a&$b);
?>
"|" 按位或运算
按位或运算符“|”是双目运算符。其功能是参与运算的两数各对应的二进位相或。只要对应的二个二进位有一个为1时,结果位就为1。参与运算的两个数均以补码出现。
例如:9|5可写算式如下:
00001001
|00000101
00001101 (十进制为13)可见9|5=13
<?php
$a = 9;
$b = 5;
echo sprintf("%b", $a|$b)."\n"; //二进制
echo sprintf("%d", $a|$b)."\n"; //十进制
"^" 按位异或运算
按位异或运算符“^”是双目运算符。其功能是参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1。参与运算数仍以补码出现,例如9^5可写成算式如下:
00001001
^00000101
00001100 (十进制为12)
<?php
$a = 9;
$b = 5;
echo sprintf("%b", $a^$b)."\n"; //二进制
echo sprintf("%d", $a^$b)."\n"; //十进制
"~" 求反运算
求反运算符~为单目运算符,具有右结合性。其功能是对参与运算的数的各二进位按位求反。
例如~9的运算为:
~(0000000000001001)结果为:1111111111110110
<?php
$a = 9;
$b = 5;
echo sprintf("%b", ~$a)."\n"; //二进制
"〈〈" 左移运算
左移运算符“<<”是双目运算符。其功能把“<< ”左边的运算数的各二进位全部左移若干位,由“<<”右边的数指定移动的位数,高位丢弃,低位补0。
例如:
a<<4
指把a的各二进位向左移动4位。如a=00000011(十进制3),左移4位后为00110000(十进制48)。
<?php
$a = 3;
$temp = $a<<4;
echo sprintf("%d", $temp)."\n"; //十进制
“>>” 右移运算
右移运算符“>>”是双目运算符。其功能是把“>> ”左边的运算数的各二进位全部右移若干位,“>>”右边的数指定移动的位数。
例如:
设 a=48,
a>>4
表示把00110000右移为00000011(十进制3)。
应该说明的是,对于有符号数,在右移时,符号位将随同移动。当为正数时,最高位补0,而为负数时,符号位为1,最高位是补0或是补1 取决于编译系统的规定
<?php
$a = 48;
$temp = $a>>4;
echo sprintf("%d", $temp)."\n"; //十进制
⑦ php中的运算符有哪些
A选项,看下图:
不用全部记住,记住平时比较常用的就行了,还有记住:算术运算符>关系运算符>逻辑运算符>赋值运算符。
(7)运算符php扩展阅读:
PHP 中的运算符分为:四则运算符、逻辑运算符、三目运算符和位运算符。
运算符优先级指定了两个表达式绑定得有多“紧密”。例如,表达式 1 + 5 * 3 的结果是 16 而不是 18 是因为乘号(“*”)的优先级比加号(“+”)高。
必要时可握枣以用括号来强制改变优先级。例如:(1 + 5) * 3 的值为 18。如果运算符优先级相同,则使用从左到右的左联顺序。
对字符串和数字进裤皮慎行加胡敬法运算。
请看这些例子:
x = 5 + 5; document.write(x); x = "5" + "5"; document.write(x); x = 5 + "5"; document.write(x); x = "5" + 5; document.write(x)。
x = 5 + 5; document.write(x); x = "5" + "5"; document.write(x); x = 5 + "5"; document.write(x); x = "5" + 5; document.write(x)。