get_cfg_var 會直接從 php.ini 回傳值,而 ini_get 會回傳執行時期的設定值。我已在 PHP 5.1.6 上測試過。
[由 danbrown AT php DOT net 編輯:此註解的作者意思是 ini_get() 會回傳由 ini_set()、.htaccess、本機 php.ini 檔案和其他執行時期函式設定的值。相反地,get_cfg_var() 只會回傳伺服器 php.ini 的值。]
(PHP 4, PHP 5, PHP 7, PHP 8)
get_cfg_var — 取得 PHP 設定選項的值
取得 PHP 設定選項
的值。
此函式不會返回編譯 PHP 時設定的組態資訊,也不會返回從 Apache 組態檔讀取的資訊。
要檢查系統是否正在使用設定檔,請嘗試擷取 cfg_file_path 設定的值。如果此值可用,則表示正在使用設定檔。
選項
設定選項名稱。
回傳由 option
指定的 PHP 設定變數的目前值,如果發生錯誤則回傳 false
。
get_cfg_var 會直接從 php.ini 回傳值,而 ini_get 會回傳執行時期的設定值。我已在 PHP 5.1.6 上測試過。
[由 danbrown AT php DOT net 編輯:此註解的作者意思是 ini_get() 會回傳由 ini_set()、.htaccess、本機 php.ini 檔案和其他執行時期函式設定的值。相反地,get_cfg_var() 只會回傳伺服器 php.ini 的值。]
值為 'yes' 的設定將會回傳為 '1'。
<?php
//#我的 ini 檔案
//A = 1
//B = any-thing
//C = yes
//D = /some/path/file
get_cfg_var('A') // 回傳 '1'
get_cfg_var('B') // 回傳 'any-thing'
get_cfg_var('C') // 回傳 '1',等等,為什麼?
get_cfg_var('D') // 回傳 '/some/path/file'
?>
我的設定 = yes,然後用 === "yes" 檢查它,結果失敗了。
布林值會以下列方式評估:「true」、「on」、「yes」評估為「1」(字串 1),而「false」、「off」、「no」評估為「」(空字串)。
請記住,get_cfg_var() 會針對值:On 回傳字串(1) '1'
<?php
//在 php.ini 中
//A = On
$A1 = get_cfg_var("A") === "On";
$A2 = get_cfg_var("A") === 1;
$A3 = get_cfg_var("A") === "1";
//$A1 為 false
//$A2 為 false
//$A3 為 true
?>
ini_get() 和 get_cfg_var() 的區別如下
@) ini_get():回傳 .htaccess 中的目前值或在 PHP_INI_USER 或 PHP_INI_PERDIR 中定義的值
@) get_cfg_var: 傳回 php.ini 中定義的值