2013-09-28 205 views
4

我有一個數組,在php中充滿了「Eventos Calendario」對象,在我的腳本中的某個位置,我需要在此數組的位置x處引入一個相同類型的新對象。這是我使用將對象插入數組

$EventoLimite = new EventosCalendario(null,$Timestamp, $TipoEvento);     
var_dump($EventoLimite); 
array_splice($this->EventosEntrada, $i, 0, $EventoLimite); // 
var_dump($this->EventosEntrada[$i]); 

和代碼的「Var_Dumps」我得到是:

object(EventosCalendario)[15] 
    public 'FechaHora' => int 1376334000 
    public 'FechaHoraOriginal' => null 
    public 'Tipo' => string 'Entrada' (length=7) 
    public 'Origen' => string 'Insertado' (length=9) 
    public 'Subtipo' => null 
    public 'ID' => null 

int 1376334000 

爲什麼陣列只獲得「FechaHora」屬性的值,在新的插槽?我需要獲取$ this-> EventosEntrada [$ i]中的整個對象。我怎樣才能做到這一點??

+1

從'array_splice'文檔:「*注意:如果替換不是一個數組,它將被轉換爲一個(即(數組))參數,這可能導致在使用對象或NULL替換時出現意外行爲。 *」。也許有問題? –

回答

8

的「替代」的說法必須是一個數組本身,所以你應該寫

array_splice($this->EventosEntrada, $i, 0, [$EventoLimite]); // note []s 
+0

哦,上帝,你是一個天才。支架是否意味着它是一個陣列插槽? – user1181589

+0

@ user1181589:只要有意外的事情發生,我就去找文檔:-) – Jon

+0

救命的解決方法。 –

0

也許它因爲,當你介紹一個新的對象,只是公共變量和函數的具體可用您正在處理的文件。我的意思是它是由clsasses訪問的原因。