## どこで設定を行うのか

これらのモードは、ある PHP ディレクティブがいつどこで設定できるのかを表すものです。 マニュアルに記載されているすべてのディレクティブには、これらのモードのいずれかが指定されています。 たとえば、PHP スクリプト中で ini_set() で設定できるものもあれば php.ini や httpd.conf でなければ設定できないものもあります。

たとえば output_buffering は PHP_INI_PERDIR なので、 ini_set() で設定することはできません。 一方 display_errors は PHP_INI_ALL なのでどこででも設定でき、当然 ini_set() ででも設定できます。

PHP_INI_* モードの定義
モード | 意味
--- | ---
PHP_INI_USER | ユーザースクリプト (ini_set() などで) または Windows レジストリ で設定可能なエントリ。 PHP 5.3 以降では、.user.ini でも設定可能
PHP_INI_PERDIR | php.ini、.htaccess、httpd.conf あるいは .user.ini (PHP 5.3 以降の場合) で設定可能なエントリ
PHP_INI_SYSTEM | php.ini または httpd.confで設定可能なエントリ
PHP_INI_ALL | どこでも設定可能なエントリ