【PHP8.x】ini_get関数の使い方

作成日: 更新日:

ini_get関数はPHPの実行時設定情報を取得する関数です。PHPは、プログラムの動作を制御するために多くの設定項目を持っています。これらの設定は通常、php.iniという設定ファイルに記述されており、メモリの使用上限、スクリプトの最大実行時間、ファイルのアップロードサイズの上限など、PHPアプリケーションの挙動に深く関わるものです。

この関数は、引数として取得したい設定項目の名前を文字列で指定することで、その時点での設定値を文字列型で取得します。例えば、ini_get('memory_limit')と記述すると、PHPスクリプトが使用できるメモリの最大値を取得できます。

もし指定した設定項目が見つからない場合や定義されていない場合は、ブール値のfalseを返します。ini_get関数は、アプリケーションが特定のPHP設定に依存しているかを確認したり、現在のサーバー環境がアプリケーションの要求する設定を満たしているかを検証したりする際に非常に有用です。これにより、システム環境の変化に柔軟に対応し、安定したアプリケーションの構築と運用に貢献します。

基本的な使い方

構文(syntax)

ini_get(string $varname): string|false

引数(parameters)

string $option

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

戻り値(return)

string|false

ini_get 関数は、PHP の設定ディレクティブの値を取得するために使用されます。成功した場合は設定ディレクティブの値を文字列で返します。指定された設定ディレクティブが存在しない、あるいは取得できない場合は false を返します。

サンプルコード

PHP全INI設定を取得する

<?php

/**
 * PHPの全てのINI設定情報を取得し、表示するサンプルコードです。
 *
 * ini_get_all() 関数は、PHPの実行環境における全てのINI設定オプションを
 * 連想配列の形式で返します。各設定オプションは、その名前をキーとし、
 * グローバル値、ローカル値、アクセスレベルなどの詳細情報を含む
 * サブ配列として格納されています。
 *
 * この関数は、システムエンジニアを目指す初心者がPHP環境の設定を
 * 確認し、理解する上で非常に役立ちます。
 */
function displayAllIniSettings(): void
{
    // ini_get_all() を使用して、PHPの全てのINI設定情報を取得します。
    // 引数を指定しない場合、全てのINI設定が詳細情報と共に返されます。
    $iniSettings = ini_get_all();

    // INI設定情報の取得に失敗した場合の処理
    if ($iniSettings === false) {
        echo "INI設定情報の取得に失敗しました。\n";
        return;
    }

    echo "--- PHP INI 設定一覧 ---\n";

    // 取得した設定情報をループで処理し、整形して表示します。
    foreach ($iniSettings as $key => $value) {
        // 'local_value' は現在のスクリプト実行スコープにおける設定値です。
        // 'global_value' はPHPが起動時に読み込んだINIファイルからの設定値です。
        // 空文字列の場合は、'(empty)' と表示して分かりやすくします。
        $localValue = (string)($value['local_value'] ?? 'N/A');
        $globalValue = (string)($value['global_value'] ?? 'N/A');

        echo sprintf(
            "%-30s : Local = %-15s | Global = %-15s\n",
            $key,
            ($localValue === '' ? '(empty)' : $localValue),
            ($globalValue === '' ? '(empty)' : $globalValue)
        );
    }
    echo "-------------------------\n";
}

// 上記で定義した関数を実行し、PHPのINI設定情報を表示します。
displayAllIniSettings();

ini_get_all()関数は、PHPの実行環境における全てのINI設定オプションを詳細情報とともに取得する際に使用します。引数を指定しない場合、PHPに設定されている全てのオプションが連想配列として返されます。各オプションは、その名前をキーとし、現在のスクリプト実行スコープでの設定値を示すlocal_valueや、PHP起動時に読み込まれたINIファイルからの設定値を示すglobal_valueなどの情報を含むサブ配列として格納されます。

戻り値は、設定情報が格納された配列、または情報の取得に失敗した場合はfalseとなります。この関数を利用することで、PHP環境の設定状況を網羅的に確認し、それぞれの設定が現在どのように適用されているかを把握できます。

サンプルコードでは、ini_get_all()で取得した全てのINI設定情報をループ処理し、各設定の名前とlocal_valueglobal_valueを比較しやすい形式で整形して表示しています。これにより、システムエンジニアを目指す初心者が自身のPHP環境設定を効率的に理解し、デバッグや環境構築に役立てることができます。

このサンプルコードでは、ini_get_all() が失敗した場合に false を返すため、戻り値の確認は非常に重要です。local_value は現在のスクリプト実行スコープにおける設定値、global_value はPHPが起動時に読み込んだ初期設定値を示します。両者の違いを理解し、現在のスクリプトがどの設定で動作しているかを確認しましょう。

ini_get_all() は全てのINI設定を取得するため情報量が多くなります。特定のオプション値だけを知りたい場合は、よりシンプルな ini_get('オプション名') 関数を使用すると効率的です。表示される設定内容はPHPのバージョンやサーバー環境によって異なりますので、ご自身の環境に合わせて確認することが大切です。

PHP ini設定値を取得する

<?php

/**
 * PHPのini設定ディレクティブの現在の値を取得し、表示する関数。
 * システムエンジニアを目指す初心者向けに、ini_get関数の基本的な使い方を示します。
 * ini_getは、php.iniファイルやその他の設定ファイルで定義されたPHPの設定値を取得するために使用されます。
 */
function displayPhpIniSettings(): void
{
    echo "PHP ini設定値の取得例:\n";
    echo "--------------------------\n";

    // display_errors: エラーを画面に出力するかどうか
    $displayErrors = ini_get('display_errors');
    if ($displayErrors !== false) {
        echo "display_errors: " . ($displayErrors ? 'On' : 'Off') . "\n";
    } else {
        echo "display_errors: 設定が見つからないか、取得できませんでした。\n";
    }

    // memory_limit: スクリプトが消費できる最大メモリ量
    $memoryLimit = ini_get('memory_limit');
    if ($memoryLimit !== false) {
        echo "memory_limit: " . $memoryLimit . "\n";
    } else {
        echo "memory_limit: 設定が見つからないか、取得できませんでした。\n";
    }

    // upload_max_filesize: アップロードできるファイルの最大サイズ
    $uploadMaxFilesize = ini_get('upload_max_filesize');
    if ($uploadMaxFilesize !== false) {
        echo "upload_max_filesize: " . $uploadMaxFilesize . "\n";
    } else {
        echo "upload_max_filesize: 設定が見つからないか、取得できませんでした。\n";
    }

    // 存在しない設定を取得しようとした場合
    $nonExistentSetting = ini_get('non_existent_php_setting');
    if ($nonExistentSetting !== false) {
        echo "non_existent_php_setting: " . $nonExistentSetting . "\n";
    } else {
        echo "non_existent_php_setting: (設定が見つからないか、取得できませんでした。これは期待される動作です。)\n";
    }

    echo "--------------------------\n";
}

// 関数を実行して、設定値を確認します。
displayPhpIniSettings();

?>

PHPのini_get関数は、PHPが動作する環境における様々な設定値を取得するために使用されます。これらの設定は、通常php.iniファイルなどで定義されており、スクリプトのエラー表示方法や利用可能なメモリ量など、PHPの挙動を細かく制御しています。

この関数は、引数として取得したい設定項目の名前を文字列で受け取ります。例えば、エラーを画面に出力するかどうかを設定するdisplay_errorsや、スクリプトが消費できる最大のメモリ量を指定するmemory_limitなどがこれにあたります。

設定値の取得に成功した場合、その値が文字列として返されます。サンプルコードでは、display_errorsが「On」または「Off」として、またmemory_limitupload_max_filesizeが具体的な値として取得されている様子が示されています。しかし、指定した設定項目が存在しない場合や、何らかの理由で値が取得できない場合は、falseが戻り値として返されます。サンプルコードの最後に示すように、存在しない設定項目を問い合わせた際にfalseが返されることで、設定値の有無をプログラムで確認する際の重要な判断基準となります。ini_get関数を使うことで、実行環境の設定に応じてスクリプトの動作を調整する基礎を学ぶことができます。

ini_get関数は、PHPの設定ファイル(php.iniなど)で定義された現在の設定値を取得するために使用されます。重要な注意点として、指定した設定が見つからない場合や取得できない場合は戻り値がfalseとなりますので、必ずその確認を行ってください。サンプルコードのようにif ($variable !== false)とすることで、予期せぬエラーを防ぎ安全に利用できます。

また、取得される設定値はすべて文字列型で返されるため、数値や論理値として利用する際には、明示的な型変換が必要となる場合があります。この関数はPHP内部の設定を取得するものであり、OSの環境変数を取得するgetenv関数とは目的が異なりますので混同しないよう注意が必要です。ini_getは値の取得のみで、設定値を変更することはできません。

【PHP8.x】ini_get関数の使い方 | いっしー@Webエンジニア