Warning with allow_call_time_pass_reference = Off

  • 元タイトル: pcomment, ls2プラグインにおけるWarning出力の修正
  • ページ: BugTrack2
  • 投稿者: Ratbeta?
  • 優先順位: 重要
  • 状態: 完了
  • カテゴリー: プラグイン
  • 投稿日: 2006-06-28 (水) 21:42:48
  • バージョン: 1.4.7

メッセージ

BugTrack2/106, official:PukiWiki/Install/xrea.comの関連です。

最近のバージョンのphpで、php.iniに次の設定を行った場合に、warningが出力されます。

allow_call_time_pass_reference = Off

なお、この設定は、xrea.comなどのサーバが適用していますが、特有のものではなく、php.iniの推奨設定とされております。

多くの場合に関してはBugTrack2/106の方で修正が完了しておりますが、 array_walk関数を使用するls2, pcommentの両プラグインに関しては修正されておりませんので、修正パッチを掲載しておきます。

警告メッセージ (pcommentの場合)

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

修正パッチ

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 2006-06-29 (木) 00:05:47
    • cvs:plugin/ls2.inc.php (1.24) ご指摘の通り。試した範囲では array_walk() 版と同一の結果を返している様です。 -- henoheno 2006-08-06 (日) 22:18:17
  • pcommentについても同様の問題が残されておりますが…、これに関してはパッチを取り込む予定はありませんでしょうか。 -- Ratbeta? 2006-10-01 (日) 22:35:27
  • こちらの件、ls2, pcomment ともに修正しました。改めて見直すに、plugin_xxx_check_arg() の第二引数は、array_walk() からコールするがゆえに存在していた仮のものでしたから、そこも含めて本来の形へと修正しました。その他若干整理。 -- henoheno 2006-10-04 (水) 22:41:36
  • このBugTrackは、今後類似の話題をまとめるために活用して下さい。 -- henoheno 2006-10-04 (水) 22:43:37
  • ChangeLog より -- 2011-11-23 (水) 16:33:00
  • ここまでの修正項目を収録したバージョン: BugTrack2/355 1.5.0リリースに向けて -- 2015-02-16 (月) 19:08:33

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

PukiWiki 1.5.2+ © 2001-2019 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u7. HTML convert time: 0.307 sec.

OSDN