您的位置:

php运算符中优先级,PHP优先级

本文目录一览:

PHP运算符优先级

10-32 为最高优先级

相当于(10-32) ? 0 : true

而后 0 ? 5 : 3

0在计算机中被认为FLASE 因此答案是3

请给分,谢谢~

关于php 三元运算符的优先级问题。请教?

三元运算符的优先级是从右到左的,因此上面顺序是:

$i = 2;

先运行:($i == 2 ? "A" : $i == 1)

然后再运行 (? 'B' : 'C';)

假设第一个运行的结果是 $ret 那么$ret的值为A;

那么第二个可以写成

$ret?'B':'C';

因$ret的值为A,是真值,所以结果是B。

PHP 关于访问控制的和运算符优先级介绍

这篇文章主要介绍了PHP中关于访问控制的和运算符优先级介绍 需要的朋友可以参考下   复制代码 代码如下: class Foo {     private $name = hdj ;     public function getName(){         return $this name;     } } class Bar extends Foo {     public $name = deeka ; } $bar = new Bar; var_dump($bar name); var_dump($bar getName());

访问控制

对属性或方法的访问控制 是通过在前面添加关键字 public protected 或 private 来实现的 由 public 所定义的类成员可以在任何地方被访问 由 protected 所定义的类成员则可以被其所在类的子类和父类访问(当然 该成员所在的类也可以访问) 而由 private 定义的类成员则只能被其所在类访问

复制代码 代码如下:

?php $a = ; $b = ; if($a = || $b = ){     echo $b br / ;     $a++;      $b++; } var_dump($a $b); echo br / $a = ( || $b = ) ;

echo hr / ; $a = ; $b = ; $c = ; if($a = || $b = $c = ){     $a++;      $b++; } var_dump($a $b $c); echo br / 比 || 高 ;

echo hr / ; $a = ; $b = ; $c = ; if($a = || $b = $c = ){     $a++;      $b++; } var_dump($a $b $c); echo br / ; echo hr / ;

lishixinzhi/Article/program/PHP/201311/20949

php逻辑优先级

在php中比较运算符(比如==)比逻辑运算符(比如 and )的优先级要高,

也就是说对于if($a and $b==1)是先判断$b==1,再跟$a逻辑与。

php 优先级问题

php三元运算符的顺序是从左向右的

原始 $a = $b $c ? ($c-$b) ? 1 : ($b-$c) 0 : ($b+$c) ? 0 : $b*$c;

先计算优先级高于三元运算符的

$a = 20 40 ? 20 ? 1 : -20 0 : 60 ? 0 : 800;

$a = 0 ? 20 ? 1 : 0 : 60 ? 0 : 800;

然后从左测第一个可执行的三元运算开始执行 20 ? 1 : 0 为 1

$a = 0 ? 1 : 60 ? 0 : 800;

再从左测第一个可执行的三元运算开始执行 0 ? 1 : 60 为 60

$a = 60 ? 0 : 800;

最终

$a = 0

为了避免工作中出现这种情况,建议避免出现比较长的三元运算表达式

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。