ini_set

関数の概要

ini_set は、PHPの実行時に設定値(iniディレクティブ)を動的に変更するための関数です。通常は php.ini ファイルで設定を行いますが、ini_setを使うことでスクリプト内から一時的に設定を変更することができます。これにより、環境に依存しない柔軟な動作調整が可能になります。

パラメータの説明

  • string $varname — 変更したいPHPの設定項目名(例:"display_errors")。
  • string $newvalue — その設定項目に設定する新しい値(例:"1""Off"など)。

戻り値

成功した場合は、元の設定値(文字列)を返します。設定変更に失敗した場合は false が返されます。

使用例

基本的な使い方

<?php
// エラーメッセージを表示する設定を有効にする
ini_set('display_errors', '1');
error_reporting(E_ALL);
?>

この例では、スクリプト実行時にエラー表示をオンにしています。通常はphp.iniで設定されている場合もありますが、ini_setを使うことでスクリプト単位で切り替え可能です。

アップロードファイルサイズの制限変更

<?php
// POSTでアップロードできる最大サイズを2MBに変更
ini_set('upload_max_filesize', '2M');
ini_set('post_max_size', '2M');
?>

ファイルアップロードの容量制限をスクリプト内で設定変更する例です。ただし、これらの設定はPHPの初期設定段階で読み込まれるため、環境によっては反映されない場合があります。

セッションの保存パスを変更する

<?php
// セッションファイルの保存先を変更する
ini_set('session.save_path', '/tmp/php_sessions');
session_start();
?>

この例は、セッションデータの保存ディレクトリをカスタマイズするために使います。共有サーバーなどでデフォルトから保存先を変更したいときに有効です。

関連する関数

  • ini_get — 現在のPHP設定値を取得する。
  • ini_restore — 指定した設定を元の値に戻す。
  • error_reporting — エラーレベルの設定を変更する。

まとめ

ini_set はPHPの実行時設定をスクリプト内から柔軟に変更できる便利な関数です。環境設定をphp.iniに依存せずに一時的に調整可能なため、開発やデバッグ時に特に役立ちます。ただし、すべての設定項目が実行時変更に対応しているわけではないので、適用できる項目かどうかは事前に確認しましょう。