define()関数は定数を設定する関数です。主な変数との違いは次のようになります。
定数は、前にドル記号($)を要しません。
定数を定義することができるのは、define()関数のみです。単なる代入による定義はできません。
定数は、定義することができ、変数のスコープ規則に関係なく、あら ゆる場所からアクセス可能です。
定数は一度設定されると再定義または未定義とすることはできません。
定数は、スカラー値 (PHP 5.6 以降は、スカラー値あるいは配列) としてのみ評価可能です。
詳細は下記マニュアルで確認してください。
http://www.php.net//manual/ja/language.constants.syntax.php
スピードでいうと'define' 演算子の方が遅いです。下記コードを使うと確認できます。
lang
1$time_start = microtime(true);
2define('teisu', 123456789);
3for ($i = 0; $i < 1000000; ++$i) {
4 if ($i < teisu) {
5 // do nothing
6 }
7}
8$timelimit = microtime(true) - $time_start;
9echo '定数:'.$timelimit . 's'.PHP_EOL;
10
11$time_start = microtime(true);
12$hensu = 123456789;
13for ($i = 0; $i < 1000000; ++$i) {
14 if ($i < $hensu) {
15 // do nothing
16 }
17}
18$timelimit = microtime(true) - $time_start;
19echo '変数:'.$timelimit . 's'.PHP_EOL;
20
21$time_start = microtime(true);
22for ($i = 0; $i < 1000000; ++$i) {
23 if ($i < 123456789) {
24 // do nothing
25 }
26}
27$timelimit = microtime(true) - $time_start;
28echo '直接:'.$timelimit . 's'.PHP_EOL;
29
30出力
31定数:0.10920000076294s
32変数:0.078000068664551s
33直接:0.10920000076294s
34
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。