PHP の値渡しと参照渡しに関する奇妙な問題
PHP コード
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->
$a = 1;
$b = &$a;
$b = $a++;
echo $b."<br />";
echo $a;
ログイン後にコピー
$a と $b の最終結果が何になるのか、そしてなぜこの結果になるのかを誰が教えてくれますか?
-----解決策---------
私が不思議に思うのは、なぜいつも自分でバグを解決しなければならないのですか
この問題は何年も前から存在していますが、誰もこのバグを報告したことがありません
具体的な理由を分析するには、次のことを確認する必要があります。ソース コードですが、見つけるのが難しすぎます
文法的には、$a++ は $a = $a + 1 と同等です
つまり、
$b = $a++;
ですと同等
$b = $a;
$a = $a + 1;
以前の参照がない場合
$b = &$a;
echo $a ;
正しい結果を取得できます 2
参照を使用すると、ルールが変わります。これは明らかに間違っています!
これは php での参照の実装におけるバグです
もちろん、彼は問題を認識しているかもしれませんが、それを解決することはできません
要するに、このバグの存在により、あなたは明示的に引用符を使用しないようにしてください