最近は結構だいぶひまで、あまりネタがないので小ネタです。
新規サーバ移行に合わせPHP5.3からPHP7へ移行したいという話で、そのテストをしてたときにでたエラーとその対応についてまとめました。
まず、これはPHPの話じゃないんですが、Apacheのバージョンが新しくなったせいで、一部ページで文字化けが発生してたのの対策。
apacheのデフォルト文字コード指定がUTF-8になってると、S-JISとかEUCのページがあったときに化けるのでコメント化します。
Apache 文字化け対策 AddDefaultCharset – CentOSサーバ構築術 文具堂
#AddDefaultCharset UTF-8
「Parse error: syntax error, unexpected 'new' (T_NEW)」というエラーが出ていた件対策。
PHP7ではオブジェクトの参照渡し代入ができなくなっている(というか普通に代入すればよい)ため。
Parse error: syntax error, unexpected ‘new’ (T_NEW) in | ホームページ制作部ブログ | 中央区日本橋 しろくまシステムズ
PHP5
$my_query =& new WP_Query
↓
PHP7
$my_query = new WP_Query
「Uncaught Error: Call to undefined function split()」というエラーが出ていた件対策。
splitが不用意に正規表現使われちゃうので関数名が変わった。正規表現の必要ないときはexplode使えと。
PHP5.6からPHP7.1にしたら出たエラー|Never catch a cold.
PHP5
split('/,/', $text)
↓
PHP7
explode(',', $text)
「Fatal error: Call to undefined function mysql_connect()」というエラーが出ていた件対策。
mysql_*系はなくなりmysqli_*系になったので色々と置き換えが必要。
PHP7で、mysql_connect()が無いと怒られる件 (undefined function mysql_connect)
PHP5
mysql_connect(...)
↓
PHP7
mysqli_connect(...)