2010-12-13 3 views

答えて

5

あなたが実行時間中にそれを変更することはできません定数define("YEAR",365);を定義した場合ので、YEAR、常に何365何メートルになることはありません。一方、変数はスクリプトの実行中に値を変更することもできます。ローカルスコープもあります。つまり、変数が宣言されている関数ファイルの中で使用できるだけです。定数には、スクリプト全体からアクセスできるグローバルスコープがあります。

http://php.net/manual/en/language.constants.php

http://planetozh.com/blog/2006/06/php-variables-vs-constants/

+0

私はそれが意味するJavaの定数のようなものです。ありがとう。 – JDelage

2

定数は、プログラムの実行時に変更されない値のために使用されることを意図しています。それらはメモリに格納されません。

静的パラメータを後で定数の中でファイルの先頭に置くことをお勧めします。すべてを検索/置換するのではなく、必要に応じてそれらを見つけて簡単に変更することができます。

もう1つ:定数は常にCAPITAL_LETTERSにする必要があるため、定数であることがわかります。

2

決して変更されないグローバルにアクセス可能な値が必要な場合に定数を定義します。たとえば、ウェブサイトエディタの定数を定義すると、多くのページに表示する必要があり、会社が別のウェブサイトエディタを採用した場合、変更するには厳しいPITAになります。

ので、その後、

define('WEBEDITOR','Tom Jones'); 

あなたは出力「トム・ジョーンズ、単にエコーWEBEDITORに必要whereever。

変数は、それだけです:変数です。それは変わる。

+0

定数には常にグローバルスコープがありますか? – JDelage

+1

@JDelage:PHPでは、クラス定数でない限りyesです。あなたはPHPを学んでいるようですので、オンラインマニュアルはかなり包括的です。ここで定数をチェックしてください:http://ca2.php。net/constant – dnagirl

0

定数には変更できない値があります。 、PHPを使用していないと解釈されている - - またはそれが保証されている場合、彼らは、中央に配置されている、などの定数は通常、コンパイル条件文の場合を除いて(ほとんどの言語に悪い習慣と考えられている名前付き

設定ファイルの中にあるので)、それらを過度に使用するのは最善ではなく、可能であればclass constantsを調べてください。

これは、定数が定義されている場所を特定することが難しくなり、名前の衝突を避けることが難しくなるためです。

+3

ただし、構成値に定数を使用することは許容されます。あなたが一箇所にすべてを定義している限り。これは、異なるサーバー上にある可能性があり、サーバーの種類によって異なるサーバー固有の値のホストを見つける方法を必要とする大規模アプリケーションにとっては不可欠です。何かのように、あなたはそれらを悪用することができます。しかし、それらを正しく使用すると、リアルタイムの節約になる可能性があります。 – DampeS8N

+0

@ DampeS8N:それは本当です。私は通常悪い習慣を言うために編集します。私はこれが共通の概念だと思う。 – webbiedave

+0

これはグローバルなので悪い習慣とみなされますか? – JDelage

関連する問題