近日再寫PHP的時候,再參考一些SESSION使用資料的程式碼時會出現__PHP_Incomplete_Class的問題:
我寫了一個Class,然後用SESSION去儲存這個Class,但當我下次取他的時候就會造成這個錯誤。
這個錯誤跟寫法與設定有關係,上網GOOGLE後發現這個造成這個ERROR的原因是因為PHP是直譯式的,所以如果我在讀取SESSION前沒有先去定義Class時程式就會出錯,因為他不知道這是個物件。
- 將Class的定義(引入)置於SESSION_START()以前
- PHP Autoloader(參考網址:http://php-autoloader.malkusch.de/en/features/session/)
但我用第一個方法後還是無法正確執行,後來檢查了許久發現我的php.ini設定中session.auto_start=1,是自動啟動的,這樣的話順序調了還是一樣是錯的,所以建議將session.auto_start改成0,然後程式碼內都加上session.start()如此一來就可以避免掉這個問題了。