PHP の値渡しと参照渡しに関する奇妙な問題

WBOY
リリース: 2016-06-13 13:10:18
オリジナル
899 人が閲覧しました

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 での参照の実装におけるバグです
もちろん、彼は問題を認識しているかもしれませんが、それを解決することはできません

要するに、このバグの存在により、あなたは明示的に引用符を使用しないようにしてください

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