PHP 提供 ini_set() 與 ini_get() 兩個函數,讓開發者在腳本執行期間動態調整或查詢 php.ini 設定值,無需手動編輯設定檔,尤其在無權限修改 php.ini 的共享主機環境中極為實用。
ini_set(string $option, string|int|float|bool $value): string|false
max_execution_time、display_errors)。false。php.ini 檔案,也不影響其他請求。upload_max_filesize)屬於 PHP_INI_PERDIR 或 PHP_INI_SYSTEM 模式,無法透過 ini_set() 修改,需在 php.ini、.htaccess 或 httpd.conf 設定。<?php
// 將腳本最大執行時間設為 180 秒(預設通常 30 秒)
ini_set('max_execution_time', '180');
// 開發環境顯示錯誤,生產環境建議關閉
ini_set('display_errors', '1');
ini_set('error_reporting', E_ALL);
// 設定預設時區
ini_set('date.timezone', 'Asia/Taipei');
?>
ini_get(string $option): string|false
"1"(開啟)或 "0"/空字串(關閉)。false。<?php
echo 'max_execution_time: ' . ini_get('max_execution_time'); // 輸出如:180
echo 'display_errors: ' . ini_get('display_errors'); // 輸出:1
// 判斷布林設定的正確寫法
$displayErrors = (bool) ini_get('display_errors');
?>
若需一次取得所有設定值(含區域值、全域值、存取模式),可使用 ini_get_all(),回傳關聯陣列:
<?php
$allSettings = ini_get_all();
// $allSettings['max_execution_time'] = ['global_value' => '30', 'local_value' => '180', 'access' => 7]
?>
phpinfo(),查看 Configuration → PHP Core 區塊。PHP_INI_USER 才能用 ini_set)。| 函數 | 用途 | 影響範圍 | 常見用途 |
|---|---|---|---|
| ini_set() | 修改設定 | 目前請求 | 調整執行時間、錯誤顯示、時區、記憶體限制 |
| ini_get() | 讀取設定 | 目前請求 | 除錯、條件判斷、動態調整邏輯 |
| ini_get_all() | 取得所有設定 | 目前請求 | 環境檢測、設定備份、遷移比對 |