0
引起混亂的問題,不能想出一個好標題,但我會解釋,盡我所能。完全的對象在孩子的方法調用
我使用笨,並利用get_instance()
功能,可以訪問CI超級對象的某些類。我在child
構造函數中的CI對象是精印時調用超級對象
abstract class parent{
/**
* properties
*/
protected $CI;
/**
* constructor
*/
public function __construct(){
$this->CI =& get_instance();
}
和許多子類
class child extends parent{
public function __construct(){
//parent
parent::__construct();
print_r($this->CI);
}
public function doSomething(){
print_r($this->CI);
}
}
一個父類。當在child
doSomething()
方法中打印時,我得到一個不完整的類對象。
編輯:
我相信我已經有所發現的問題。當CI創建其超級對象時使用控制器類。在出現問題的情況下,這是Login
控制器。很明顯,當我通過引用進行分配時,名稱仍然存在,然後如果我不在我的Login
控制器中,則它對於不完整的類有問題。我能「修復」它通過重新調用get_instance()
函數的使用時它,但是這不是一個很好的解決方案。有任何想法嗎?
通常情況下,當一個對象已經在$ _SESSION中序列化並且在該對象的原始類定義文件已被加載之前通過session_start()恢復時,您會遇到這種情況 –
yes。我有自動加載設置,但這個特殊的實例不使用'$ _SESSION'。令人困惑的是在子構造函數中沒有問題,但不是子方法。 –
但如果磁帶自動加載機註冊__after__你的session_start(),那麼它仍然可以產生問題....我正好在Laravel在會話存儲用戶對象,當用戶對象是從一個基本對象擴展了同樣的問題,但如果我沒有這種繼承關係,這不是問題 –