关于PHP传值与传引用的奇怪有关问题

WBOY
Freigeben: 2016-06-13 13:10:18
Original
901 Leute haben es durchsucht

关于PHP传值与传引用的奇怪问题

PHP code
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
$a = 1;
$b = &$a;
$b = $a++;
echo $b."<br>";
echo $a;

Nach dem Login kopieren

谁能告诉我 最后得到的$a和$b结果是什么,为什么是这个结果?

------解决方案--------------------
我觉得奇怪的是:为什么总是要自己消化 BUG
这个问题已经有好多年历史了,但从来没有人报告此bug
分析具体原因需要看源码,但是在是太难定位了

按语法说明 $a++ 与 $a = $a + 1 等价
就是说
$b = $a++;
等价于
$b = $a;
$a = $a + 1;

如果没有前面的引用
$b = &$a;
echo $a;
是可以得到正确的结果 2 的

由于有了引用,规则就发生了变化。这显然是不对的!
这是在 php 实现引用时的一个 bug
当然他也可能意识到问题的存在,但无法解决

总之由于这个 bug 的存在,你就尽量不要显式的使用引用

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