* Warning with allow_call_time_pass_reference = Off [#xdb26855] - 元タイトル: pcomment, ls2プラグインにおけるWarning出力の修正 - ページ: [[BugTrack2]] - 投稿者: [[Ratbeta]] - 優先順位: 重要 - 状態: 完了 - カテゴリー: プラグイン - 投稿日: 2006-06-28 (水) 21:42:48 - バージョン: - バージョン: 1.4.7 ** メッセージ [#f6907971] [[BugTrack2/106]], [[official:PukiWiki/Install/xrea.com#sd27a494]]の関連です。 最近のバージョンのphpで、php.iniに次の設定を行った場合に、warningが出力されます。 allow_call_time_pass_reference = Off なお、この設定は、xrea.comなどのサーバが適用していますが、特有のものではなく、php.iniの推奨設定とされております。 多くの場合に関しては[[BugTrack2/106]]の方で修正が完了しておりますが、 array_walk関数を使用するls2, pcommentの両プラグインに関しては修正されておりませんので、修正パッチを掲載しておきます。 ***警告メッセージ (pcommentの場合) [#z0da429b] Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of array_walk(). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in /pukiwiki/pukiwiki/plugin/pcomment.inc.php on line 87 ***修正パッチ [#t0281abf] Index: plugin/pcomment.inc.php =================================================================== RCS file: /cvsroot/pukiwiki/pukiwiki/plugin/pcomment.inc.php,v retrieving revision 1.43 diff -u -r1.43 pcomment.inc.php --- plugin/pcomment.inc.php 4 Oct 2005 14:31:22 -0000 1.43 +++ plugin/pcomment.inc.php 29 Jun 2006 12:10:02 -0000 @@ -80,7 +80,11 @@ // BugTrack2/106: Only variables can be passed by reference from PHP 5.0.5 $args = func_get_args(); // with array_walk() - array_walk($args, 'plugin_pcomment_check_arg', & $params); + foreach ($args as $key => $arg) + { + plugin_pcomment_check_arg($arg, $key, $params); + } +// array_walk($args, 'plugin_pcomment_check_arg', & $params); $vars_page = isset($vars['page']) ? $vars['page'] : ''; $page = (isset($params['_args'][0]) && $params['_args'][0] != '') ? $params['_args'][0] : Index: plugin/ls2.inc.php =================================================================== RCS file: /cvsroot/pukiwiki/pukiwiki/plugin/ls2.inc.php,v retrieving revision 1.23 diff -u -r1.23 ls2.inc.php --- plugin/ls2.inc.php 5 Dec 2004 11:37:37 -0000 1.23 +++ plugin/ls2.inc.php 29 Jun 2006 12:34:39 -0000 @@ -66,7 +66,11 @@ } if ($prefix == '') $prefix = strip_bracket($vars['page']) . '/'; - array_walk($args, 'plugin_ls2_check_arg', & $params); + foreach ($args as $key => $arg) + { + plugin_ls2_check_arg($arg, $key, $params); + } +// array_walk($args, 'plugin_ls2_check_arg', $params); $title = (! empty($params['_args'])) ? join(',', $params['_args']) : // Manual str_replace('$1', htmlspecialchars($prefix), $_ls2_msg_title); // Auto 以前にどこかで「一筋縄ではいかない修正」とコメントされておられたので、この単純な変更には問題がありそうなのですが、php.iniの推奨設定とされていることもあるので、新たにBugTrackを立てさせさせていただきました。 -------- - ありがとうございます :) 拝見します -- [[henoheno]] &new{2006-06-29 (木) 00:05:47}; -- [[cvs:plugin/ls2.inc.php]] (1.24) ご指摘の通り。試した範囲では array_walk() 版と同一の結果を返している様です。 -- [[henoheno]] &new{2006-08-06 (日) 22:18:17}; - pcommentについても同様の問題が残されておりますが…、これに関してはパッチを取り込む予定はありませんでしょうか。 -- [[Ratbeta]] &new{2006-10-01 (日) 22:35:27}; - こちらの件、ls2, pcomment ともに修正しました。改めて見直すに、plugin_xxx_check_arg() の第二引数は、array_walk() からコールするがゆえに存在していた仮のものでしたから、そこも含めて本来の形へと修正しました。その他若干整理。 -- [[henoheno]] &new{2006-10-04 (水) 22:41:36}; -- [[cvs:plugin/ls2.inc.php]] (1.25) -- [[cvs:plugin/pcomment.inc.php]] (1.44) - このBugTrackは、今後類似の話題をまとめるために活用して下さい。 -- [[henoheno]] &new{2006-10-04 (水) 22:43:37}; - ChangeLog より -- &new{2011-11-23 (水) 16:33:00}; -- [[cvs:lib/func.php]] (1.83) -- 2006-10-28 23:35 -- [[cvs:plugin/online.inc.php]] (1.12) -- 2007-02-10 15:21 - ここまでの修正項目を収録したバージョン: [[BugTrack2/355]] 1.5.0リリースに向けて -- &new{2015-02-16 (月) 19:08:33}; #comment //#comment