PHPは、一般的に使用されるサーバー側のスクリプト言語であり、Web開発で広く使用されています。そのセッションメカニズムにより、ユーザーリクエスト間でデータを共有することができ、ユーザーログイン、状態のメンテナンス、その他の機能を実現するための重要な手段です。ただし、一部の開発者は、PHP7を使用する場合、ページ間でセッション値を正常に渡すことができないという問題に遭遇し、アプリケーションの通常の操作に影響します。
PHP7環境では、一部のセッションの問題は、多くの場合、使用される拡張機能に関連しています。特に、 php7 memcachedまたはphp7-redis拡張機能を使用する場合、セッションが有効になっていないか、ページ間で共有できない可能性が高くなります。これは、これらの拡張機能がPHPMemcachedと同じほど安定していて互換性がないためです。
セッションの安定性と互換性を向上させるには、PECLが提供する最新バージョンに拡張機能を更新することをお勧めします。次のコマンドを使用して、より安定したphpmemcachedおよびphpredis拡張機能をインストールします。
# 最新バージョンをインストールします php-memcached 拡張
$ pecl install memcached
# 最新バージョンをインストールします phpredis 拡張
$ pecl install redis
インストールが完了したら、セッションの保存方法がphp.iniで正しく構成されていることを確認し、Webサービスを再起動して設定を有効にします。
拡張機能を更新するのが便利でない場合、または更新後も問題がある場合は、データアクセスにネイティブ$ _Sessionアレイを直接使用できます。セッションを操作する前に、必ずsession_start()メソッドに電話してください。
// 起動する Session
session_start();
// 設定 Session 価値
$_SESSION['name'] = 'PHP7';
このようにして、セッションデータを複数のページで共有して、互換性の延長によって引き起こされる問題を回避できます。
PHP7のページでセッションを配信できない問題は、通常、使用される拡張バージョンに関連しています。この問題は、拡張機能をアップグレードするか、$ _Sessionを使用してデータを直接処理することで効果的に解決できます。実際の開発では、セッションの安定した操作とデータの通常の送信を確保するために、プロジェクトに従って最も適切な方法を選択する必要があります。