忍者ブログ

カウンター

プロモーション

カレンダー

10 2024/11 12
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

AntinomyMy の実験室

   私のWEBアプリ実験室です!

ブログ内検索

楽天でお買い物

twitter

最新トラックバック

最新コメント

忍者アナライズ

ウェザーニュース

バーコード

本を買う

アクセス解析

Google+

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。


  • 2024/11/22 02:20

バージョン違いのPHP はエラーを吐いて邪魔をするw

PHP の調べ物


 まぁタイトル通りなのですがとりあえず昔のバージョン 4 など向けに
書かれているPEAR のライブラリ をバージョン 5.3 で動かそうと思うと非常に困りましたw

 どう困るかっていうと、実行した結果をブラウザで表示している結果の前に、
動いているに関わらずやたらエラー関係の表示がずらずら出るのです!ww

 これはPEAR を使っていても同様みたいで、
Strict Standards: Non-static method 」の後に何か続く物が沢山出たりします。

 私はPEAR の情報も知りたかったので、PEAR_info っていいうPEARで出来たライブラリを
もちろんPEAR を用いてダウンロードしてインストールしましたが、この時点でもう既に
このエラー関係の表示で意味不明に思っていました。

 まぁw 毎度ながら長い前置きはこれぐらいにしておいて、本題です。

結果としては、エラーの出力は段階があって、出力するときにどの程度のエラーまでを
表示して伝えてくるかを選べるのがわかりました。

PHP公式ページ には
関数リファレンス >> PHP の振る舞いの変更 >> エラー処理 >> 定義済み定数
にエラーレベルの詳細が書いて有りますが、そこには、

値:2048 定数:
E_STRICT ( integer )
説明:「コードの相互運用性や互換性を維持するために PHP がコードの変更を提案する。 」
注記:PHP 5 より

とあり、これが引っかかっている様でした。

これを変更してバージョン違いで何か表示されるのを一時的にでも
エラー表示されて邪魔にならない状況にする為に、php.iniディレクティブ のerror_reporting を
変更しておけば表示されなくなるみたいです。

一応ですが私のphp.ini ですが、
[変更前]
error_reporting = E_ALL | E_STRICT
[変更後]
error_reporting = E_ALL

です。
つまり、「 E_STRICT」をカットするとエラーメッセージでの情報は出なくなったのを確認しました。

また、実行中に変更するには、
int error_reporting ([ int $level ] ) を使えば良いみたいなので、
これもメモしておこうかと思います。

後ついでに見つけたエラーメッセージを Web サーバのエラーログ、 TCP ポート、あるいはファイルに送る
bool error_log ( string $message [, int $message_type = 0 [, string $destination [, string $extra_headers ]]] )
もメモしておきます。


 やっぱり思うのですが、PEAR のライブラリをバージョン4と5に対応した物を
公式側が作ってくれるのが一番良いと思います。

 なんせライブラリなんですからそれを自己流に書き直してしまっては
ライブラリの意味がなくなってしまう部分もあると思うので、
やはり一時しのぎであっても、エラーレベルを変えて対応するのが、
素人や極度にライブラリのバージョン違いで困っていない人には良いのかなと思いました。

参考サイト
PHP5を試してみる - エラーレベル「E_STRICT」

PHP: PEARのHTTP_Request利用時のエラーについて(続き)

PHP5でe_strictエラーを出さずにPEARを使ってみる


追伸で書きました
PHP5.3以降のDeprecated のエラーorz

拍手[0回]

PR


  • 2010/06/07 19:29

コメント一覧

  • お名前
  • Email

  • コメント

  • Vodafone絵文字 i-mode絵文字 Ezweb絵文字
  • パスワード
[PR]