* PHP 5.3 でエラーが出るようになった [#t05a3902]
- ページ: [[BugTrack2]]
- 投稿者: 名無しさん
- 優先順位: 普通
- 状態: 完了
- カテゴリー: 本体バグ
- 投稿日: 2009-08-01 (土) 17:11:31
- バージョン:
** PHP5関連 [#u8bfbada]
- [[BugTrack/632]] PHP5で動作しない
-- [[BugTrack2/324]] PHP 5.3 でエラーが出るようになった
-- [[BugTrack2/349]] php-5.4.0で動作させる対応
-- など
** メッセージ [#v97c81b4]
これまでのバージョンでは特に問題がなかったのですが、PHP 5.3 にするといくつかエラーが出てくるようになりました。
+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); なんで、必要がないのかもしれませんが・・・)
+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 でも動作するように書かれている部分でエラーが出てしまう((& 演算子を使ってクラスを呼び出す所が、E_DEPRECATED レベルのエラーになってました))ので、あえて記述してません。
--------
- [[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 で簡易確認しただけなので、見落としがあるかもしれませんが・・・ -- &new{2009-08-13 (木) 00:57:43};
- 関連: [[BugTrack/632]] -- &new{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');
}
をその後に実行しておくとか? -- &new{2012-11-30 (金) 18:16:02};
- version 1.5.0で対応済み
- "tracker_list プラグインのソートが機能しない"という件は、[[BugTrack2/359]]で対応された模様(リリース予定バージョン: 1.5.1) -- &new{2016-01-11 (月) 22:46:51};
//#comment