ホームページ  >  記事  >  バックエンド開発  >  PHPの自己インクリメントと自己デクリメントの謎について

PHPの自己インクリメントと自己デクリメントの謎について

WBOY
WBOYオリジナル
2016-06-23 13:48:05744ブラウズ

最初にインタビューの質問を見てみましょう:

    $a = 1;    $b = &$a;    if ($b == $a++)        echo "true";    else        echo "false";

まず、変数 $a を作成し、値を 1 に設定します。

次に、変数 $b を作成し、それを $a の値として使用します。

最後の判定ステートメントには、POST_INC と IS_EQUAL という 2 つのオペコードが含まれています。最初に実行するのは、return first、increment ステートメント (POST_INC) です。これは、$b は $a への参照であり、$b も 2 であるため、最初に 1 を返し、次に $a が 2 にインクリメントされます。次に、比較ステートメント (IS_EQUAL) が実行されます。これは、$b の値が 2 で、$a++ の戻り値が 1 であるため、これらは等しくありません。

同様の面接の質問は次のとおりです:

    $a = 1;    $b = &$a;    $b = $a++;        echo "a: $a; b: $b";



声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。