- 締切済み
ファイル内でのini_set
ファイル内でのini_setの挙動について意味がわかりません。 エラー表示を制御させたくphpファイル内にini_set('display_errors', 0);としました。 echo ini_get('display_errors');//1と表示 ini_set('display_errors', 0); //$str = "aaa" echo ini_get('display_errors');//0と表示 exit; この状態で$strのコメントを外すとなぜかエラーがきっちり表示されてしまいます。 調べたところファイル内で設定できないものもあるがこの項目についてはファイル内で 制御できるとありました。 .htaccessではinclude_pathの設定をしているだけでdisplay_errorsの設定はしておらず全く 原因がわかりません・・・ちなみに.htaccessでphp_value display_errors Offを入れると エラーは表示されません。 環境はphp5でxamppを利用しております。 ローカルか運用サーバーかでそれぞれの制御を変えたくできればphp内で行いたいのですが どうすればいいものでしょうか?
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- tany180sx
- ベストアンサー率63% (239/379)
注意: display_errors は実行時にも設定可能(ini_set() 関数を用いて)ですが、 スクリプトが致命的(fatal)なエラーを発生した場合は その設定は反映されません。 なぜなら、要求されたアクションは 実行されなかったからです。 http://php.benscom.com/manual/ja/errorfunc.configuration.php http://php.benscom.com/manual/ja/configuration.changes.modes.php PHP_INI_ALL:どこでも設定可能なエントリ とあっても、設定可能であるが効果なしという項目があるので注意。
お礼
お返事ありがとうございます。 何度か読み返しなんとなくではありますが理解する事ができました。 書いてある通りですが設定は可能だが特例もあるのでphp内に書くのではなく.htaccessで制御した方が 無難という事ですね。 運用サーバーにアップもしくはローカルでテストする段階での切り替えが面倒なのでこのような事が できればと思っていたのですが残念です・・・^^;