以前直面した問題について、どう解決すればいいのか非常に悩んでいましたが、ついに解決策を見つけました。ここで皆さんと共有します。問題は以下の通りです: 厳格な基準:変数のみを418行目のupload\includes\cls_template.php参照で渡すべきです 418行目:$tag_sel = array_shift(explode(' ', $tag));
対策1: バージョン5.3以降の問題は、構成にも関連しているはずです。418行目がこの文を2つの文に分割している限り、問題はありません $tag_sel = array_shift(explode(' ', $tag)); 変更内容:
$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr); array_shiftのパラメータは参照によって渡されるため、デフォルトで5.3を超える特定の変数のみを渡せ、関数を通じて値を返すことはできません 同様に、関数のネストエラーに遭遇した場合は別々に書けば、エラーは自然に解決されます
として: 関数get_dyna_libs($theme, $tmp)
{ $extsub = 爆発('.', $tmp); $ext = 終わり($extsub); $tmp = basename($tmp,".$ext"); $sql = 「SELECT region, library, sort_order, id, number, type」 「FROM」 $GLOBALS['ecs']->table('template') 「ここで theme = '$theme' およびファイル名 = '" 。 $tmp。 「' AND タイプ > 0 AND は注釈=''" 『地域別、図書館、sort_order』; $res = $GLOBALS['db']->getAll($sql); $dyna_libs = array(); foreach($res as $row)
{ $dyna_libs[$row['region']][$row['library']][] = array( 'id' => $row['id'], 「数」 => $row['数']」、 'type' => $row['type'] );
} 返$dyna_libs;
}
set $ext = end(explode('.', $tmp)); 変化 $extsub = 爆発('.', $tmp); $ext = 終わり($extsub);
解決策2(マスキングエラー):
または次のように設定すれば:error_reporting = E_ALL | E_STRICT php.iniで利用可能な設定は以下の通りです: error_reporting = 4 E_ALL | E_STRICT
これはコーディング標準の警告が表示されることを意味します。 Joomlaはエラー出力のキャンセルを推奨しており、必要に応じてデバッグに切り替えるべきです error_reporting = E_ALL & ~E_NOTICE
問題は解決しました。 |