Seichan です.こんばんわ.
pukiwiki を PHP 5.4 に対応させる方法 (1) の続きです.
Undefined variable,Only variable references,Strict Standard: Declaration of の修正になります.
5. Notice: Undefined variable をつぶす
PHP 変数の $HTTP_SERVER_VARS は http://pukiwiki.sourceforge.jp/?%E8%B3%AA%E5%95%8F%E7%AE%B14%2F578 にある通り、$_POST に変更することで対応出来るようです.
Notice: Undefined variable: HTTP_SERVER_VARS in lib/init.php on line 28
$HTTP_SERVER_VERS と $_POST って元々入る内容が違うような… という気がしつつも修正しちゃいます.
lib/init.php line 25: foreach (array('SCRIPT_NAME', 'SERVER_ADMIN', 'SERVER_NAME', unset(${$key}, $_SERVER[$key], $HTTP_SERVER_VARS[$key]); lib/init.php line 141: unset(${$ua}, $_SERVER[$ua], $HTTP_SERVER_VARS[$ua], $ua); lib/init.php line 283: foreach (array('QUERY_STRING', 'argv', 'argc') as $key) { unset(${$key}, $_SERVER[$key], $HTTP_SERVER_VARS[$key]); lib/init.php line 286: unset($REQUEST_URI, $HTTP_SERVER_VARS['REQUEST_URI']);
6. Notice: Only variable references をつぶす
new したオブジェクトをそのまま return で返すと出てしまう警告になります.回避方法はそのまま return せずに一度変数に突っ込んで,その変数を return する.という単純な方法で大丈夫です.
Notice: Only variable references should be returned by reference in lib/convert_html.php on line 144
lib/convert_html.php: function & Factory_Inline($text) return new Paragraph(' ' . substr($text, 1)); lib/convert_html.php: function & Factory_Inline($text) return new Inline($text); lib/convert_html.php: function & Factory_DList(& $root, $text) return new DList($out); lib/convert_html.php: function & Factory_Table(& $root, $text) return new Table($out); lib/convert_html.php: function & Factory_YTable(& $root, $text) return new YTable(csv_explode(',', substr($text, 1))); lib/convert_html.php: function & Factory_Div(& $root, $text) return new Div($matches); lib/convert_html.php: function & Factory_Div(& $root, $text) return new Div($matches); // Seems legacy block plugin lib/convert_html.php: function & Factory_Div(& $root, $text) return new Div($matches); // Seems multiline-enabled block plugin
7. Strict Standard: Declaration of をなくす
Class Element で canContain($obj) を定義しているのに,この Class を継承している Heading でも定義している為,オーバーロード出来ないよ.っていうエラーのようです.
Strict Standards: Declaration of Heading::canContain() should be compatible with Element::canContain($obj) in lib/convert_html.php on line 263
これは,index.php の error_reporting を戻せばメッセージ自体は抑制出来ますが気持ち悪いので以下の通り & を取って対応します.
lib/convert_html.php: class Heading extends Element function canContain(& $obj) lib/convert_html.php: class HRule extends Element function canContain(& $obj) lib/convert_html.php: class ListContainer extends Element function canContain(& $obj) lib/convert_html.php: class ListElement extends Element function canContain(& $obj) lib/convert_html.php: class BQuote extends Element function canContain(& $obj) lib/convert_html.php: class Table extends Element function canContain(& $obj) lib/convert_html.php: class YTable extends Element function canContain(& $obj) lib/convert_html.php: class Pre extends Element function canContain(& $obj) lib/convert_html.php: class Div extends Element function canContain(& $obj) lib/convert_html.php: class Align extends Element function canContain(& $obj)
これで,E_ALL の状態でもエラーメッセージが表示されることは無くなるかと…
コメント