例えばあなたがPHP5.4以上のバージョンでWebサイトを構築しているなら(しようとしているなら)、レンタルサーバー選びは慎重に行いましょう。
意外かもしれませんが、レンタルサーバーでは未だにPHP5.3が主流となっています。初期設定が5.3になっていて5.4以上も選択できるなら良いのですが、5.3(ひどい場合は5.1)のみ対応というレンタルサーバーも少なくありません。メンテナンスの行き届いた更新頻度の高いホスティングプロバイダであれば、PHP5.4以上にも対応しています。
この図はWebサイトで利用されているPHPのバージョンを示していますが、2015年6月時点でPHP5.3のシェアが40%もあります。PHP5.3の時代が長く、大規模なサイトほどPHPのバージョンを変更することはリスクを伴うため、PHP5.4以上に移行しにくいのでしょう。
PHP5.3は2014年8月14日でサポート(開発)が終了しています。未だに5.4にも対応していないレンタルサーバーがありますが、もし本格的にPHPを利用する予定であれば最低でも5.5以上に対応するレンタルサーバーを選択するべきでしょう。
PHPのサポート期間は以下の様になっています。現時点でPHP5.5に対応しているレンタルサーバーであれば、PHP5.6にも柔軟に対応するでしょう。
バージョン | サポート終了 |
---|---|
5.4 | 2015年9月 |
5.5 | 2016年6月 |
5.6 | 2017年8月 |
PHPのバージョンを変更しても、表面上は問題なく動作しているように見えるかもしれません。PHPは比較的バージョン間の互換性が高いため、バージョン変更時の不具合は見つけにくいと思います。
公式サイトに詳細な変更点が掲載されているので、もしバージョンを変更するなら目を通しておくべきでしょう。
例えば(レンタルサーバーでは)主流の5.3から5.4への変更点には以下の様なものがあります。当然ですが5.4で変更された仕様はPHP5.5であっても同じ影響を受けます。
PHP5.4ではセーフモードをサポートしなくなったため、セーフモードでの動作を前提とするアプリケーションは、 セキュリティに関する調整が必要となります。他にも以下の様な変更点があります。
呼び出し時の参照渡しが非対応となりました。
function foo($var){
$a++;
}
$a = 0;
foo(&$a);
$aが文字列の場合、非数値のオフセットを指定すると以下の様になります。
同時にE_WARNINGが発生しますが、処理は継続します。
isset($a['foo']);
PHP5.3 - bool(true)
PHP5.4 - bool(false)
バージョンが新しくなると新しい機能も追加され、コーディングが少し楽(便利)になります。例えばPHP5.4には以下の機能が追加されています。関数の返値を配列として扱えるのは便利ですね。
配列の短縮構文が追加されました。
$a = [1, 2, 3, 4];
$a = ['one' => 1, 'two' => 2, 'three' => 3, 'four' => 4];
二進数フォーマットが追加されました。
$a = 0b11111111; // 2進数 (10進数の255と等価)
クラスのインスタンス生成時に、メンバーにアクセスできます。
(new Foo)->bar();
関数の返り値を配列として扱えます。
foo()[0] ;
hostingstock.netでは様々なレンタルサーバーを紹介していますが、様々なアップデートにすぐ対応しているレンタルサーバーほど人気があり、使い勝手も良いことがほとんどです。あまり人気のないレンタルサーバーほど、古い仕様のままサービスを続けている傾向があります。