2016-03-01 72 views
0

PHP文档告诉我们关于缀和后缀运算符的简单应用,即PHP Plusplus运算符仅适用于“简单”变量?

++$a; 
    $a++; 
    (...)(++$a)(...); 
    (...)($a++)(...); 

是四个以上对++唯一允许的形式?

例如,++($ x * $ y)或($ u * $ v)++怎么样?在我看来,直觉上明确的是,这个++只能用于“简单”,“非匿名”变量,但我没有在文档中看到清楚的说明。毕竟,解释器可能会在计算复杂的单行表达式时构造临时的匿名变量。

+0

'++ i' $预和'$ I ++'为岗位,所以是的,你是正确的 – aron9forever

+0

尽管我觉得有必要指出PHP从来没有真正被编译过***,但它被***解释为***,就像python或java字节码 – aron9forever

+2

[PHP文档参考](http://www.php .net/manual/en/language.operators.increment.php)....如果有疑问,请阅读PHP文档 –

回答

0

你是对的本质,如果你把--++运营商之前一个变量,那么它将是一个预增量,即++$i。如果你把它们放在变量之后,那么它将是一个后增加$i++

我建议您快速阅读这个答案here,它包含一些有趣的信息,关于它们的工作方式。

默认为++$i似乎是更好的办法,只有在您有特定理由时才使用$i++

0

后缀

$in=0; 
for ($i=0; $i < 5; $i++) { 
    print_r($in++);//PostFix 
    print_r('<br/>'); 
} 

输出

0 
1 
2 
3 
4 

前缀:

$in=0; 
for ($i=0; $i < 5; $i++) { 
    print_r(++$in);//PreFix 
    print_r('<br/>'); 
} 

输出

1 
2 
3 
4 
5 
0

这个例子解释了关于POSTFIX和PREFIX的一切。

Operator Name   Description 
++$x  Pre-increment Increments $x by one, then returns $x 
$x++  Post-increment Returns $x, then increments $x by one 
--$x  Pre-decrement Decrements $x by one, then returns $x 
$x--  Post-decrement Returns $x, then decrements $x by one 

实施例: -

<?php 
echo "<h3>Postincrement</h3>"; 
$a = 5; 
echo "Should be 5: " . $a++ . "<br />\n"; 
echo "Should be 6: " . $a . "<br />\n"; 

echo "<h3>Preincrement</h3>"; 
$a = 5; 
echo "Should be 6: " . ++$a . "<br />\n"; 
echo "Should be 6: " . $a . "<br />\n"; 

echo "<h3>Postdecrement</h3>"; 
$a = 5; 
echo "Should be 5: " . $a-- . "<br />\n"; 
echo "Should be 4: " . $a . "<br />\n"; 

echo "<h3>Predecrement</h3>"; 
$a = 5; 
echo "Should be 4: " . --$a . "<br />\n"; 
echo "Should be 4: " . $a . "<br />\n"; 
?> 

检查此link为更详细地: -

算被用来对变量和值执行操作。

PHP划分运营商在以下组:

-Arithmetic运营

-Assignment运营

-comparison运营

-Increment /递减运营

- 逻辑运算符

-STRING运营商

- 阵列运营商

检查这个link为PHP运营商