Onde uma configuração deve ser definida

Estes modos determinam quando e onde uma diretiva do PHP pode ou não pode ser definida, e cada diretiva no manual faz referência a um destes modos. Por exemplo, algumas definições podem ser feitas em um script PHP usando ini_set(), enquanto outras só podem ser feitas no php.ini ou httpd.conf.

Por exemplo, a configuração output_buffering é INI_PERDIR portanto não pode ser definida usando ini_set(). Entretanto a diretiva display_errors é INI_ALL portanto pode ser definida em qualquer lugar com ini_set().

Constantes de modo INI
INI_USER (int)
A entrada pode ser definida em scripts do usuário (como com ini_set()) ou no registro do Windows. A entrada pode ser definida no .user.ini
INI_PERDIR (int)
A entrada pode ser definida no php.ini, .htaccess, httpd.conf ou .user.ini
INI_SYSTEM (int)
A entrada pode ser definida no php.ini ou httpd.conf
INI_ALL (int)
A entrada pode ser definida em qualquer lugar