Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【PHP8.x】get_cfg_var()関数の使い方

get_cfg_var関数の使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

get_cfg_var関数は、PHPの設定変数の値を取得する関数です。この関数は、主にPHPが起動する際に読み込まれる「php.ini」ファイルで定義されている設定オプションの値を参照します。例えば、PHPスクリプトの実行時間の上限やメモリの使用量など、PHP環境の初期設定をプログラムの中から確認したい場合に利用できます。

引数には、取得したい設定オプションの名前を文字列で指定します。指定したオプションが存在し、値が設定されている場合はその値を返しますが、設定されていない場合は論理値のfalseを返します。

特に重要なのは、この関数が「php.ini」ファイルに直接記述された値のみを対象とする点です。プログラムの実行中にini_set()関数などを用いて一時的に変更された設定値や、ウェブサーバーの設定などによって上書きされた値は、この関数では取得できません。それらの実行時設定値も含めて確認したい場合は、ini_get()関数を使用する必要があります。

get_cfg_var関数は、PHPの初期設定が意図した通りにロードされているかを確認したり、システム全体のデフォルト設定を把握したりする際に特に役立ちます。これにより、アプリケーションの安定稼働に必要な環境設定を正確に理解し、デバッグやシステム管理に活用できます。

構文(syntax)

1<?php
2$option_name = 'memory_limit';
3$option_value = get_cfg_var($option_name);
4
5if ($option_value !== false) {
6    echo $option_name . ': ' . $option_value;
7} else {
8    echo $option_name . ' は設定されていません。';
9}

引数(parameters)

string $option

  • string $option: 取得したい設定オプションの名前を指定する文字列

戻り値(return)

array|string|false

指定された設定項目に対応する値、または設定項目が見つからなかった場合は false を返します。

サンプルコード

PHP設定値の取得方法

1<?php
2
3/**
4 * PHPの構成設定 (php.ini) の値を取得するサンプルコードです。
5 *
6 * `get_cfg_var` 関数は、PHPの環境設定ファイル `php.ini` に直接記述された
7 * 特定の構成オプションの値を取得します。
8 * この関数は、`ini_set()` などによって実行時に変更された値や、
9 * `.htaccess` ファイルで設定された値は取得しません。
10 * 純粋に `php.ini` に記載されているデフォルト値を確認する際に利用します。
11 *
12 * @param string $option 取得したいPHP構成オプションの名前。
13 * @return void
14 */
15function demonstrateGetCfgVar(string $option): void
16{
17    // get_cfg_var 関数を使って指定された構成オプションの値を取得
18    // 値が見つからない場合や設定されていない場合は false を返します。
19    $value = get_cfg_var($option);
20
21    echo "--- PHP構成オプション: '{$option}' の値 ---" . PHP_EOL;
22
23    if ($value === false) {
24        // オプションが見つからないか、php.ini に設定されていない場合
25        echo "オプション '{$option}' は、php.ini に設定されていないか、見つかりませんでした。" . PHP_EOL;
26    } else {
27        // オプションが見つかり、値が設定されている場合
28        // var_export を使うと、値の型を保持したまま表示できるため、文字列以外の値も確認しやすいです。
29        echo "値: " . var_export($value, true) . PHP_EOL;
30    }
31    echo PHP_EOL;
32}
33
34// サンプル1: 一般的なメモリ制限の設定値を取得
35// この値は通常、'256M' や '512M' のような文字列で返されます。
36demonstrateGetCfgVar('memory_limit');
37
38// サンプル2: ファイルアップロードの最大サイズ設定値を取得
39// この値も通常、'2M' や '64M' のような文字列で返されます。
40demonstrateGetCfgVar('upload_max_filesize');
41
42// サンプル3: 存在しない、または php.ini に明示的に設定されていない可能性のあるオプション
43// この場合、ほとんどの環境で false が返されるでしょう。
44demonstrateGetCfgVar('non_existent_php_option');
45
46?>

get_cfg_var関数は、PHPの構成ファイルであるphp.iniに直接記述された設定値を取得します。この関数は、プログラム実行中にini_set()などで変更された値や、.htaccessで設定された値は取得せず、純粋にphp.iniに定義されたPHPの初期設定を確認したい場合に利用されます。

引数string $optionには、memory_limitupload_max_filesizeといった、取得したいPHP構成オプションの名前を文字列で指定します。

戻り値は、設定値がarrayまたはstringとして返されます。指定したオプションが見つからない場合やphp.iniに設定されていない場合はfalseが返されます。サンプルコードでは、メモリ制限などの一般的な設定値や、存在しないオプションの取得例を通して、PHP環境の基盤となる初期設定状況を確認する方法を示しており、システムエンジニアとして環境設定を把握する上で役立つでしょう。

get_cfg_var関数は、PHPの設定ファイルphp.iniに直接記述された、初期の構成オプションの値を取得します。この関数は、ini_set()関数や.htaccessファイルなどで実行時に変更された値は取得せず、純粋なphp.iniの設定値を確認する際に利用します。

指定したオプションが見つからない場合や、php.iniに明示的に設定されていない場合はfalseを返します。そのため、戻り値がfalseであるかどうかを===(厳密な比較)で確認することが非常に重要です。取得される値は文字列や配列の可能性があります。var_export関数を利用すると、取得した値の型を保持したまま表示できるため、デバッグ時に役立ちます。

PHP設定値の取得と表示

1<?php
2
3/**
4 * PHPの構成設定値を取得し、その結果を表示するサンプル関数です。
5 *
6 * get_cfg_var関数は、php.iniファイルに設定されているPHPの構成設定値を取得します。
7 * 主にPHPがロードされた際に設定された値を参照するために使用されます。
8 *
9 * @param string $optionName 取得したいPHP構成オプションの名前 (例: 'memory_limit', 'display_errors')
10 * @return void
11 */
12function displayPhpConfigValue(string $optionName): void
13{
14    // get_cfg_var関数を使って指定されたPHP構成オプションの値を取得します。
15    // この関数は、php.iniで設定された値を読み込みます。
16    $configValue = get_cfg_var($optionName);
17
18    // 戻り値の型を確認し、結果を分かりやすく表示します。
19    // 値が見つからない場合、配列の場合、文字列の場合で処理を分けます。
20    if ($configValue === false) {
21        // オプションが見つからない場合 (php.iniにない、またはget_cfg_varで取得できないタイプ)
22        echo "設定オプション '{$optionName}' は見つかりませんでした。\n";
23        echo "このオプションはphp.iniファイルに存在しないか、get_cfg_varで取得できないタイプです。\n";
24    } elseif (is_array($configValue)) {
25        // オプションの値が配列の場合
26        echo "設定オプション '{$optionName}' の値 (配列):\n";
27        print_r($configValue); // 配列の内容を整形して表示
28    } else {
29        // オプションの値が文字列の場合 (最も一般的なケース)
30        echo "設定オプション '{$optionName}' の値: " . $configValue . "\n";
31    }
32}
33
34// ---------------------------------------------------------------------
35// 以下は上記の関数を実際に使用する例です。
36// ---------------------------------------------------------------------
37
38// PHPのメモリ制限設定を表示する例
39displayPhpConfigValue('memory_limit');
40
41// エラー表示設定を表示する例
42displayPhpConfigValue('display_errors');
43
44// POSTデータの最大サイズ設定を表示する例
45displayPhpConfigValue('post_max_size');
46
47// 存在しないオプションの場合の表示例
48displayPhpConfigValue('non_existent_php_option');
49
50?>

PHP 8のget_cfg_var関数は、PHPが起動する際に読み込まれる設定ファイルであるphp.iniに定義された構成オプションの値を取得するために使用されます。この関数は、システムエンジニアを目指す初心者の方にとって、PHPの動作環境を理解し、トラブルシューティングや設定確認を行う上で重要な機能です。

この関数には、取得したいPHP構成オプションの名前を文字列(string $option)として指定します。例えば、PHPの最大メモリ制限を調べる'memory_limit'や、エラー表示の有無を確認する'display_errors'といったオプション名を指定します。

戻り値は、指定したオプションが存在し、値が設定されていれば、その設定値が返されます。多くの場合、値は文字列(string)として返されますが、特定のオプションでは複数の値を保持するため配列(array)として返されることもあります。もしオプションが見つからない場合や、get_cfg_varでは取得できない種類のオプションであった場合は、falseが返されます。

サンプルコードでは、displayPhpConfigValue関数がget_cfg_varを利用して、PHPの様々な構成設定値を取得し、その結果を分かりやすく表示しています。戻り値がfalse(オプションが見つからない)、array(配列形式)、string(文字列形式)のいずれかであるかを確認し、それぞれに応じた適切なメッセージと値を出力することで、この関数の多様な挙動を示しています。これにより、プログラムからPHPの実行環境設定を動的に確認する基礎を学ぶことができます。

このサンプルコードで利用されているget_cfg_var関数は、PHPが起動する際に読み込まれたphp.iniファイルの設定値を取得します。実行中にini_set関数などで変更された値は反映されず、常に元のphp.iniの値が返される点に注意してください。関数の戻り値は、設定が見つからない場合はfalse、配列形式の設定の場合はarray、それ以外はstringとなります。そのため、サンプルコードのようにfalseと配列の場合を適切にハンドリングすることが重要です。また、すべてのPHP設定がこの関数で取得できるわけではありません。取得した設定値によっては、システムに関する情報が含まれる場合があるため、表示する際には情報漏洩のリスクを考慮し、慎重な取り扱いが必要です。

関連コンテンツ

関連プログラミング言語