「教えて!ピックアップ」リリース!

変数は「変わる値」ですが、
定数のメリットは何ですか?
よろしくお願いいたします。

質問者からの補足コメント

  • うーん・・・

    ありがとうございます。
    何に対する「定数のメリット」を聞いている
    https://qiita.com/Naughty1029/items/08b0ddeb8054 …
    の以下の部分です。

    db_connect.php
    <?php
    /* ① データベースの接続情報を定数に格納する */
    const DB_HOST = 'mysql:dbname=user_login;host=localhost';
    const DB_USER = 'root';
    const DB_PASSWORD = 'root';

    以上の
    const で定義している部分です。
    よろしくお願いいたします。

      補足日時:2022/05/23 03:44

A 回答 (5件)

定数は、変数と違って動的には変わらないが、静的に変えることが可能なのがメリット。

例えば円周率という定数を、仮に3としていたら後になって精度が悪すぎるから3.14に変えたいとなった時に定数でなかったらどえらいことになる。”3”で検索していちいち前後の文脈を見て、円周率かそうでないか人間が判別する以外にない。やってみりゃわかる。これがどれだけ大変なことか。ビジネス系のシステムなら何万ステップも何十万ステップもあるなかでだよ。だからプロは意味のある値、数値でも文字列でも、には必ず意味がわかる名前をつける。それが定数の変数名なのだ。プログラマーなら動的・静的の概念も重要。
    • good
    • 2
この回答へのお礼

ご回答下さいましてありがとうございます。
言われてみれば、ファクトからすると、
少しの動的なプログラムを組むと
数千文字コードとなりますね!

そうなると 銀行などシステムは「万×?」文字
となり、凄まじい文字となると予想されます。

納得です! 例からすると「みずほ銀」のシステム障害
は いまだに 定期的な障害となっています。

みずほ銀行となると 日本指折りの銀行なので!
その障害で、修復しないので
たぶん社長だったと思います。辞任しました!
トップクラスが辞任するぐらいの 重要なシステム
を プログラマーが握っていることになります。
重要なポストだと思います。
 なので 真剣に取り組まないと 後でとんでもないことになる
設計はちゃんと 心を込めてやる。
 みずほ銀行などシステムは
プログラマーもそれなりの人が組んだと予想されます。
 しかし 実際は 孫請け か【玄孫】らしいです。
と ホリエモンの話からして「昔、国のシステム組んだことがある!
俺は【玄孫】「孫の孫」受け だった!」

 大それた会社も、末端のプログラマーも 一個人のバイトレベル
が組んでいる!
何かあった場合 【玄孫】 がいなくなったらどうする?

だから いつまでたっても みずほ銀行 の システム障害は
修復ができない! のかなーです。

お礼日時:2022/05/23 22:37

プログラム内で自由に変更することが不可能であり、値の保証がされること。



変更が必要となった時、定数だけを変更すればプログラムを変更する必要がないこと。
例えばヘッダー、明細という情報があった時、明細は2行目からだったが、ヘッダーが2行構成となり、明細は3行目からに変更となった。
この場合、ヘッダーの実装は変更する必要がありますが、明細は定数を3に変更すれば明細の実装を何も変更する必要がありません。

質問にあるような情報も、実際のDB接続処理を参照する必要がないので、DB接続処理を意図せず壊すこともなくなります。

当然、プログラム内で正しく定数を利用していることが前提です。
    • good
    • 1
この回答へのお礼

ご回答下さいましてありがとうございます。
実際に個人的にプログラムを組んだことがありませんが
分かるような気がします。

お礼日時:2022/05/23 22:55

プログラム上では変数であっても、最初の値は必要ですね。

いわゆる初期値を言うものです。

これが定義されていないと、プログラムは適当な値を取るしかありません。初期値の定義を忘れて、プログラムが暴走することは、あるあるです。

それを防ぐのと、スタート時にプログラムの起点をはっきりさせるのが、定数です。

また、プログラムの中で変更しない値もあります。これも定数です。これは、予め与えられている固定情報で、プログラムで動作する処理の基準になります。

また、プログラムの最初で定数定義をしておくことで、変更がし易くなります。プログラム中に定数を散りばめると、いちいち変更する場合、その場所を特定しなければなりませんが、冒頭で定数として定義しておけば、プログラムの変更が容易になります。
    • good
    • 2
この回答へのお礼

ご回答下さいましてありがとうございます。
プログラムの中で変更しない値もあります。これも定数です。
憲法みたいなものですね!
 それに対して 変数は 法規類(毎年改正されることが多い) 
ですね!

お礼日時:2022/05/23 22:51

「変わらない・変えられない」なら、バグを引き起こしかねない要因が減る

    • good
    • 1
この回答へのお礼

ありがとうございます。
バグを引き起こしかねない要因が減る
了解です。

お礼日時:2022/05/23 22:56

変わらないこと.



何に対する「定数のメリット」を聞いているのかさっぱりわからんけど.
    • good
    • 1
この回答へのお礼

ありがとうございます。
どうもすみません!
了解です。

お礼日時:2022/05/23 22:56

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A

このカテゴリの人気Q&Aランキング