PHPでは、組み込み関数session_start()を使用してセッションを開始します。ただし、同じスクリプトで関数を繰り返し呼び出すと、エラーが発生します。したがって、 session_start()を実行する前にセッションが開始されたかどうかを確認するのが最善です。
PHPの以前のバージョンでは、 Session_Id()が空であるかどうかを確認することにより、セッションが開始されたかどうかを確認できます。
<?php if(session_id() == ''){ session_start(); } ?>
セッションが開始されない場合、上記のコードはセッションを開始して、 session_start()が繰り返し呼ばれないようにします。
PHP 5.4.0から始めて、 session_status()関数を使用して、現在のセッションステータスを取得できます。この関数は、次の3つの状態定数を返します。
<?php if(session_status() == PHP_SESSION_NONE) { session_start(); } ?>
コードは、session_status()がphp_session_noneであるかどうかを決定し、セッションが開始されないときにセッションを開始するため、 session_start()への繰り返しの呼び出しによるエラーを回避します。
方法2で使用されるsession_status()関数は、PHP 5.4.0以上にのみ適用され、PHPの低いバージョンには方法1が必要です。