Warning with allow_call_time_pass_reference = Off

メッセージ

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を立てさせさせていただきました。



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

PukiWiki 1.5.4+ © 2001-2022 PukiWiki Development Team. Powered by PHP 8.2.12. HTML convert time: 0.238 sec.

SourceForge