PHP5 では、array_merge() 関数の仕様が変わり、array 型の引数のみを受け取るようになっている。このため、PHP4 ベースのシステムで、この関数に array 型以外のオブジェクトを渡しているコードがあった場合、PHP5 環境に移行するときにエラーが発生することになる。
Drupal 4.7.6 を PHP5 上で動作させると、上記が原因と思われるエラーが (少なくとも) includes/theme.inc の 252 行目と 255 行目で発生する。
最適な対処法かどうかはわかりませんが、キャストすることで回避はできる模様。
252行目:
$settings = array_merge((array)$defaults, (array)variable_get('theme_settings', array()));
255行目:
$settings = array_merge((array)$settings, (array)variable_get(str_replace('/', '_', 'theme_'. $key .'_settings'), array()));
参考:
http://jp.php.net/manual/ja/function.array-merge.php