<?php $a = 1;$c = $a+$a++;var_dump($c); // result:3$a = 1;$c = $a+$a+$a++;var_dump($c); //result:3
int 3int 3
php の構文指示によると、あなたの理解は正しいです
しかし、実際の実行結果はこのようにはならないので、これは php のバグであると考えることができます
しかし、C 言語ではこのようになっているため、このバグは意図的なものである可能性もあります
php の構文指示によると、その理解は正しいです
しかし、実際の実行結果はこのようにはならないので、これは php のバグであると考えることができます
しかし、これは C 言語の場合であるため、このバグは意図的なものである可能性もあります
ありがとうございます!投稿する前に、http://bbs.csdn.net/topics/390571704 に返信していただいた投稿を読みましたが、まだ理解できなかったので、もう一度投稿しました、ありがとうございます~~
構文の指示に従ってphp の理解は正しいです
でも、実際の実行結果はこうなっていないので、php のバグだと考えていただいて大丈夫です
でも、C 言語ではこうなっているので、このバグも意図的なものかもしれません
モデレーター、これは C では当てはまらないようです ああ:
#include<stdio.h>int main() { int a = 1; printf("a=%d\n",a+a++); a = 1; printf("a=%d\n",a+a+a++); return 0;}
a=2a=3
あなたは C++ ですが、私は C について話しています
php の構文説明によると、あなたの理解は正しいです
しかし、実際の実行結果はこのようではないので、これは php のバグだと思います
しかし、このバグは意図的なものである可能性もあります。C 言語では次のようになります
モデレーター、C ではこのようではないようです:
#include<stdio.h>int main() { int a = 1; printf("a=%d\n",a+a++); a = 1; printf("a=%d\n",a+a+a++); return 0;}
どうしてこの問題について議論している投稿をこれほどたくさん見つけたのでしょうか。
Wikipedia:
コンピューター プログラミングにおいて、未定義の動作とは、予測できない動作をするコンピューター コードを指します。これは一部のプログラミング言語、特に C の機能です。 [1] これらの言語では、標準を簡素化し、実装にある程度の柔軟性を与えるために、標準では特定の操作の結果が未定義であることを特に規定しています。これは、プログラマが何が起こるかを予測できないことを意味します。
この問題について議論する投稿がこれほどたくさんあるのはなぜでしょうか。
Wikipedia:
コンピューター プログラミングにおいて、未定義の動作とは、予測できない動作をするコンピューター コードを指します。これは一部のプログラミング言語、特に C の機能です。 [1] これらの言語では、標準を簡素化し、実装にある程度の柔軟性を与えるために、標準では特定の操作の結果が未定義であることを特に規定しています。これは、プログラマが何が起こるかを予測できないことを意味します。
またたくさんのことを学びました、ありがとう! ! !