モーグルとカバとパウダーの日記

モーグルやカバ(EXカービング)山スキー(BC)などがメインの日記でした。今は仕事のコンピュータ系のネタが主になっています。以前はスパム対策関連が多かったのですが最近はディープラーニング関連が多めです。

PHP5.3からPHP7への移行で出たエラーと対応方法

最近は結構だいぶひまで、あまりネタがないので小ネタです。


新規サーバ移行に合わせPHP5.3からPHP7へ移行したいという話で、そのテストをしてたときにでたエラーとその対応についてまとめました。


まず、これはPHPの話じゃないんですが、Apacheのバージョンが新しくなったせいで、一部ページで文字化けが発生してたのの対策。
apacheのデフォルト文字コード指定がUTF-8になってると、S-JISとかEUCのページがあったときに化けるのでコメント化します。


Apache 文字化け対策 AddDefaultCharset – CentOSサーバ構築術 文具堂

/etc/httpd/conf/httpd.conf

#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(...)