首頁
編程語言
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|int|float|bool $value): string|false
  • $option:欲修改的設定名稱(如 max_execution_time、display_errors)。
  • $value:新的設定值。
  • 回傳:成功回傳舊值,失敗回傳 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():讀取目前設定值

語法

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() 取得所有設定

若需一次取得所有設定值(含區域值、全域值、存取模式),可使用 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 設定選項列表,注意 Changeable 欄位(PHP_INI_USER 才能用 ini_set)。

總結比較表

函數用途影響範圍常見用途
ini_set()修改設定目前請求調整執行時間、錯誤顯示、時區、記憶體限制
ini_get()讀取設定目前請求除錯、條件判斷、動態調整邏輯
ini_get_all()取得所有設定目前請求環境檢測、設定備份、遷移比對
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved