ホームページ > バックエンド開発 > PHPチュートリアル > 关于PHP传值与传引用的奇怪有关问题

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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-06-13 10:50:58
オリジナル
829 人が閲覧しました

关于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;
ログイン後にコピー

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

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

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

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

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

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

関連ラベル:
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート