首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP ini_set 與 ini_get 函數用法詳解:運行時動態調整配置

     編輯:PHP 相關知識

PHP 提供 ini_set() 和 ini_get() 兩個函數,允許腳本在運行時動態讀寫 php.ini 配置選項。這在無法修改 php.ini 文件(如虛擬主機環境)或需根據業務邏輯臨時調整配置時極具價值。

ini_set:設置配置選項

語法

ini_set(string $option, string $value): string|false
  • 建議放在腳本最頂部,確保後續代碼生效。
  • 返回舊值,失敗返回 false。
  • 並非所有選項均可修改(如 memory_limit 在某些環境受限)。

常見用例

// 設置腳本最大執行時間為 180 秒(默認 30 秒)
ini_set('max_execution_time', '180');

// 開啟錯誤顯示(開發環境)
ini_set('display_errors', '1');
ini_set('error_reporting', E_ALL);

// 設置默認時區
ini_set('date.timezone', 'Asia/Shanghai');

// 限制上傳文件大小
ini_set('upload_max_filesize', '20M');
ini_set('post_max_size', '25M');

ini_get:獲取配置選項值

語法

ini_get(string $option): string|false
  • 返回選項的字符串值。
  • 布爾型選項返回 '1'(開啟)或 '0'(關閉)/''(空字符串)。
  • 若選項不存在,返回 false。

示例

echo ini_get('max_execution_time'); // 輸出: 30 (或運行時修改後的值)
echo ini_get('display_errors');     // 輸出: 1 或 0
var_dump(ini_get('non_existent'));  // 輸出: bool(false)

ini_get_all:一次性獲取所有配置

$all_ini = ini_get_all();
// 返回結構: ['option_name' => ['global_value', 'local_value', 'access']]
print_r($all_ini['max_execution_time']);
// Array ( [global_value] => 30 [local_value] => 180 [access] => 7 )
  • global_value:php.ini 全局值。
  • local_value:當前腳本生效值(含 ini_set 修改)。
  • access:訪問級別常量(PHP_INI_USER=1, PHP_INI_PERDIR=2, PHP_INI_SYSTEM=4, 組合值如 7=所有級別可改)。

可修改選項參考

僅屬於 PHP_INI_USER 或 PHP_INI_ALL 級別的選項可用 ini_set 修改。完整列表請查閱 PHP 官方文檔 - 配置選項列表 或運行 phpinfo() 查看 "Configuration PHP Core" 部分。

最佳實踐

  1. 入口文件統一設置:在框架入口或公共配置文件中集中管理運行時配置。
  2. 區分環境:開發環境開啟錯誤顯示,生產環境關閉並記錄日誌。
  3. 不可依賴修改系統級選項:如 memory_limit、post_max_size 等在生產環境常被鎖定,需通過 php.ini 或 .user.ini 修改。
  4. 配合 ini_get 做兼容性判斷:修改前獲取舊值,結束時恢復,避免影響後續請求(CLI 模式下尤為重要)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved