* 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

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Site admin: PukiWiki Development Team

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

SourceForge