## 常量
* 用define和const定義,定以后不能再改變,不能unset
* 常量名規范:用大寫,單詞之間用下劃線
* 不變的值,常用的值都可以定義為常量
* define不能用在類里面定義類常量,const可以在類中定義一個類常量。類里面的函數可以隨便用
* 常量可以用于阻止文件直接調用
~~~
//放在文件最前面,并提示錯誤
if(!define(DEDEINC)) exit('不能直接訪問我');
~~~
~~~
define('TAX_RATE',0.08);
const MYPI=3.1456;
$tax=10000*TAX_RATE;
~~~

### 預定義常量和魔術常量
1. 預定義常量
PHP_VERSION php版本
常量在手冊附錄,擴展庫列表,保留字列表里面
2. 魔術常量--根據環境而自動變化的常量
在手冊 ,語言參考,常量里面
~~~
__LINE__ 當前行數
__FILE__ 當前文件的完整路徑
__DIR__ 當前目錄
__FUNCTION__ 返回函數定義的名字
_CLASS__ 本類的名字
__TRAIT
__METHOD
__NAMESPACE__
~~~
~~~
function hello(){
echo __FUNCTION__;
}
hello();
~~~
### 函數名可變性
變量名,函數名,常量名可以變化
~~~
$b='abcdfef';
$a='b';
echo $$a;
~~~
~~~
function box(){
echo '111';
}
$a='box';
$a();
~~~
~~~
define('TAX',0.8);
$a='TAX';
echo constant($a);
~~~
**知識點:**
有header()后面一定要帶一個exit;