> For the complete documentation index, see [llms.txt](https://tobyisme.gitbook.io/laravel/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://tobyisme.gitbook.io/laravel/super-variable.md).

# Super Variable

*遷一髮動全身的概念*

## 變數設定

通常php的設定就是直接在英文字前面加一個錢字號就是變數的設定（ex:$a,$b,$c..）

## 普通變數的缺點

變數的使用就是要讓我們把原本ㄧ長串的英文簡化成淺顯易懂單字，但是如果有個變數在很多地方都會需要用到，尤其是在不同的檔案不同的函式，難道我們每個地方都設定一個變數？當然不可能，不然之後要更改不就每個地方都需要去做修改。

## 超級全域變數

laravel這邊提供了一個設定超級全域變數的地方，就是資料夾底下的config，在這裡面你可以新增一個檔案，用來存放你之後所會用到的全部的超級全域變數，方便管理、方便修改。

以下這個是一個範例，在config底下其中一個檔案，每個檔案格式都是returnㄧ個陣列，陣列裡面就是你要設定的變數名(key)跟變數值(value)。

```
return [
    //JWT金鑰
    'SECRET_KEY' => 'QQQQQQQQQQQQQQQ',
    //加密演算法
    'ALGORITHM' => 'HS512'
];
```

然後在你會用到這變數的檔案最上面宣告他。

```php
namespace App\Http\Controllers\Auth;

use \Firebase\JWT\JWT;
use App\Services\AuthService;

        ↓這是變數在此檔案的名字  ↓這是變數在config底下的路徑以及對應的key
define('SECRET_KEY', config('jwt.SECRET_KEY'));
define('ALGORITHM', config('jwt.ALGORITHM'));
```

宣告完以後就可以直接用前面的名字使用這個超級全域變數了，之後要做修改的話只需要到config底下找那個檔案，修改裡面的value就好，這邊都不需要動到，多方便阿。
