PHP 5.3 でエラーが出るようになった

  • ページ: BugTrack2
  • 投稿者: 名無しさん
  • 優先順位: 普通
  • 状態: 完了
  • カテゴリー: 本体バグ
  • 投稿日: 2009-08-01 (土) 17:11:31
  • バージョン:

PHP5関連

メッセージ

これまでのバージョンでは特に問題がなかったのですが、PHP 5.3 にするといくつかエラーが出てくるようになりました。

  1. date 関数などで、Warning が発生する
    • 今まではWarning が出なかったのですが、PHP 5.3 にしたとたん出るようになりました。date.timezone のphp.ini 設定かdate_default_timezone_set 関数を使えと言ってきますが、これらはPHP 5.1.0 以降でないと使えないので、サポート対象のPHP を変えないのであればエラー抑制するしかないと思います。(デフォルトがerror_reporting(E_ERROR | E_PARSE); なんで、必要がないのかもしれませんが・・・)
  2. tracker_list プラグインのソートが機能しない
    • official:質問箱4/480 で少し話が挙がっていますが、array_multisort 関数でWarning が発生します。
      Warning: Parameter 1 to array_multisort() expected to be a reference
      error_reporting(0); にしてエラー出力をOFF にすると表示はできるんですが、ソートが機能してくれません。

とりあえず、今気がついているのはこれだけです。

新設されたE_DEPRECATED レベルはE_STRICT レベルと同様に出力しないようにしないと、PHP 4 でも動作するように書かれている部分でエラーが出てしまう*1ので、あえて記述してません。


  • cvs:plugin/tracker.inc.php (r1.123) を修正して、動くのは確認
     			// One column set (one-dimensional array, sort type, and sort order)
     			// for array_multisort()
    -			$params[] = $columns[$fieldname];
    -			$params[] = $types[$fieldname];
    -			$params[] = $orders[$fieldname];
    +			$params[] = & $columns[$fieldname];
    +			$params[] = & $types[$fieldname];
    +			$params[] = & $orders[$fieldname];
     		}
     		if (! empty($orders) && ! empty($this->rows)) {
     			$params[] = & $this->rows;	// The target
    PHP 4.4.9, 5.2.10, 5.3.0 で簡易確認しただけなので、見落としがあるかもしれませんが・・・ -- 2009-08-13 (木) 00:57:43
  • 関連: BugTrack/632 -- 2009-08-13 (木) 12:37:01
  • BIOSやファイルシステムがタイムゾーン無しでローカルタイムを返すのかUTCを返すのかとかで必要度が変わるかもしれませんけど、
    define('LOCALZONE', date('Z'));
    は@でエラーを抑制してdate関数を実行して、
    if (version_compare(PHP_VERSION, '5.1.0', '>=')) {
    	date_default_timezone_set('UTC');
    }
    をその後に実行しておくとか? -- 2012-11-30 (金) 18:16:02
  • version 1.5.0で対応済み
  • "tracker_list プラグインのソートが機能しない"という件は、BugTrack2/359で対応された模様(リリース予定バージョン: 1.5.1) -- 2016-01-11 (月) 22:46:51

*1 & 演算子を使ってクラスを呼び出す所が、E_DEPRECATED レベルのエラーになってました

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-01-11 (月) 22:46:51
Site admin: PukiWiki Development Team

PukiWiki 1.5.1+ © 2001-2016 PukiWiki Development Team. Powered by PHP 5.6.30-0+deb8u1. HTML convert time: 0.197 sec.

OSDN