1

PHP 5.2 から 5.5 にアップグレードしたため、今では理解できないエラーが発生します。

Fatal error: Cannot redeclare class sessionHandler in ... on line ...

PHP バージョンを更新する前は、このエラーは発生しませんでした。クラスの再宣言は、PHP バージョンとは無関係のエラーであるはずです。さらに、間違いを避けるために常に require_once() を使用しています。

したがって、再宣言されないようにするために、そのクラス宣言の前にバックトレース コード ブロックを追加しました。うまくいけば、2回出力されると思っていましたが、バックトレース出力は1つしか得られません。したがって、私の少数のポイントから一度だけ宣言されます。

私は何かが恋しいですか?「本当の」問題を見つける方法はありますか?

4

1 に答える 1

3

クラス「SessionHandler」は、PHP のクラスであるため、名前空間に既に存在します - http://php.net/manual/en/class.sessionhandler.php

クラスはPHP 5.4に含まれていたように見えるので、すべてを説明しています。

クラスに別の名前を付けるか、名前空間を定義してみてください。名前空間を作成すると、次のようになります。

namespace App;
class sessionHandler {
....

もうエラーは発生しませんが、独自のクラスを参照するときは常に App\sessionHandler を使用する必要があります。

于 2015-10-30T10:37:59.043 に答える