- ベストアンサー
プログラミングでなぜ、数字から始まる変数は使えない
プログラミングでなぜ、数字から始まる変数は使えないのでしょうか?
- みんなの回答 (14)
- 専門家の回答
質問者が選んだベストアンサー
>0a1cc93 これでも私はなにも混乱しません いや~混乱したほうがいいです!。 画像を貼りましたが、 $oct=01234; これは、 $octへ668を代入する命令です!。 計算式は、 =1*8*8*8 + 2*8*8 + 3*8 + 4; =512+128+24+4 =668 実際にPHPで実行してみてください。 見たままの数字がすでに違う意味を持っていることの 実験ができると思います。 先ほどの"0x"+[0-9a-f]も、一緒にテストしてみると、 色々わかってくるかもです。 https://www.php.net/manual/ja/language.types.integer.php で、最終回答ですが、なぜ数字から始まる変数が使えないか? 答えはこれなんですが、これを満たす場合に数字になる。 decimal : [1-9][0-9]*(_[0-9]+)* | 0 今回の、サンプルの668になった理由と、0xの正規表現もURLに説明があるので、 オフィシャルサイトがいう事なので、見て損はないのと、間違いはないですから。 私が今回、先頭に数字を書いてるのに別の動作をするものを紹介したと思いますが。 それが、なぜ大事なのか、すこ~し! 感じてもらえたらなら、私はうれしいかなと。 思います!。 ではでは!
その他の回答 (13)
- dell_OK
- ベストアンサー率13% (766/5721)
回答No.2です。 書き忘れました。 PHPは変数が$から始まるので、「$1a」みたいに数字から始められてもいいのになと思うのですが、なぜだかできません。 なぞです。
お礼
ありがとうございます PHPだとなぜいいと思われたんですか?
- dell_OK
- ベストアンサー率13% (766/5721)
コード解析を簡素化したいからだと私は思っています。 多くの言語は以下のような解析をしていると思います。(私の想像) ・区切り文字の次に数字から始まり、次の区切り文字までの連続する数字は、数値とみなす。 ・区切り文字の次に文字から始まり、次の区切り文字までの連続する文字と数字は、変数とみなす。 もし変数を数字から始められるとしたらもうひとつ処理が増えることになります。 ・区切り文字の次に数字から始まり、次の区切り文字までの連続する文字と数字は、変数とみなす。 「区切り文字の次に数字から始まる」と言う規則が複数あるのはコード解析の負担が増えると思います。 人間の都合で「変数を数字から始めたい」なんて無視したいのではないでしょうか。 もしかしたら変数に数字から始められる言語があるかも知れません。 ※ここで言う区切り文字とは、演算記号、スペース、改行などです。
お礼
ありがとうございます
- AsarKingChang
- ベストアンサー率46% (3467/7474)
>プログラミングでなぜ、数字から始まる変数は使えないのでしょうか? それは、比較的簡単なことでしょう!。 a=123; と書いて、「いや123っていう変数だ!」って言われても コンパイラ/インタープリターには区別しようがないですから。 a=0x123; 途中にアルファベットが入っていても、これは数字です。 (16進数で書きましたよ!の意味) a=123; これが、変数ですよ?って事にしたら、 他の人が作業する時、確実に混乱しませんか?
お礼
ありがとうございます もう少し詳しく知りたいです興味があります a=0x123とは?
- 1
- 2
お礼
画像のとおりに実行したら 1234と表示されました