答疑啊

WBOY
Freigeben: 2016-06-23 14:24:08
Original
1025 Leute haben es durchsucht

$a=1;
$b=$a+$a++;
echo $b;
$a=1;
$b=$a+$a+$a++;
echo $b;
为什么输出的都是3


回复讨论(解决方案)

http://cn2.php.net/manual/zh/language.operators.increment.php
$a = 3 * 3 % 5; // (3 * 3) % 5 = 4
$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

// mixing ++ and + produces undefined behavior
$a = 1;
echo ++$a + $a++; // may print 4 or 5
?>

http://cn2.php.net/manual/zh/language.operators.increment.php
$a = 3 * 3 % 5; // (3 * 3) % 5 = 4
$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

// mixing ++ and + produces undefined behavior
$a = 1;
echo ++$a + $a++; // may print 4 or 5
?>
你这个回答和我的问题 有关系吗?

官方已经说了,在+和++同时存在的时候,没有定义结果如何。

现在php 5.3.x windows的版本中你的这个结果就是3,$a为2


http://cn2.php.net/manual/zh/language.operators.increment.php
$a = 3 * 3 % 5; // (3 * 3) % 5 = 4
$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

// mixing ++ and + produces undefined behavior
$a = 1;
echo ++$a + $a++; // may print 4 or 5
?>
你这个回答和我的问题 有关系吗?


http://cn2.php.net/manual/zh/language.operators.increment.php
$a = 3 * 3 % 5; // (3 * 3) % 5 = 4
$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

// mixing ++ and + produces undefined behavior
$a = 1;
echo ++$a + $a++; // may print 4 or 5
?>
你这个回答和我的问题 有关系吗?
上面的这个提取于php的访问文档,红字就是对你的问题的答复。

mixing ++ and + produces undefined behavior
混合 ++ 和 + 产生不确定的行为

所以就没有必要讨论下去了

不好意思 没认真看 

官方已经说了,在+和++同时存在的时候,没有定义结果如何。

现在php 5.3.x windows的版本中你的这个结果就是3,$a为2



http://cn2.php.net/manual/zh/language.operators.increment.php
$a = 3 * 3 % 5; // (3 * 3) % 5 = 4
$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

// mixing ++ and + produces undefined behavior
$a = 1;
echo ++$a + $a++; // may print 4 or 5
?>
你这个回答和我的问题 有关系吗?

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage