2011-05-23 146 views
1

對不起,我找不到更好的寫法=/如何檢查對象屬性類型?

我收到一個名爲ErrorBase的錯誤對象。

如果只有一個錯誤,將返回我下面的:

public 'ErrorBase' => 
     public 'CODIGO_ERRO' => string '1' (length=1) 
     public 'MENSAGEM_ERRO' => string 'Autenticação Inválida' (length=24) 
     public 'TIPO_ERRO' => string 'Usuario' (length=7) 

但如果有不止一個錯誤,它會返回我的對象​​是這樣一個數組:

public 'ErrorBase' => 
array 
    0 => 
    object(stdClass)[30] 
     public 'CODIGO_ERRO' => string '1' (length=1) 
     public 'MENSAGEM_ERRO' => string 'Autenticação Inválida' (length=24) 
     public 'TIPO_ERRO' => string 'Usuario' (length=7) 
    1 => 
    object(stdClass)[31] 
     public 'CODIGO_ERRO' => string '002' (length=3) 
     public 'MENSAGEM_ERRO' => string 'teste 002' (length=9) 
     public 'TIPO_ERRO' => string 'tipo 002' (length=8) 
    2 => 
    object(stdClass)[32] 
     public 'CODIGO_ERRO' => string '003' (length=3) 
     public 'MENSAGEM_ERRO' => string 'teste 003' (length=9) 
     public 'TIPO_ERRO' => string 'tipo 003' (length=8) 
    3 => 
    object(stdClass)[33] 
     public 'CODIGO_ERRO' => string '004' (length=3) 
     public 'MENSAGEM_ERRO' => string 'teste 004' (length=9) 
     public 'TIPO_ERRO' => string 'tipo 004' (length=8) 

我該如何處理這些情況? 如何檢查是否有一個對象數組或只有一個對象?

預先感謝任何幫助。

+0

什麼是ErrorBase?你的僞代碼不是很清楚。 – 2011-05-23 13:57:48

+0

只是一個類...這是返回的類 – Gerep 2011-05-23 14:03:27

+1

的var_dump(),所以類ErrorBase也有一個名爲ErrorBase的屬性?在這種情況下'if(is_array($ instanceOfErrorBase-> ErrorBase)){/ * stuff * /}' – Hannes 2011-05-23 14:55:09

回答

0

使用is_array()

if (is_array($this->ERROR_BASE)) 
+0

它不會工作,因爲它是一個類,它將永遠返回一個包含它的數組的對象 – Gerep 2011-05-23 14:01:44

+0

我已經檢查了兩個結果的類型,並且都返回了一個對象,沒有ta數組。 – Gerep 2011-05-23 14:14:15

4

的Try ...

is_object() and is_array()

+0

這兩種方式都會返回一個對象,因爲它是我需要檢查的屬性類型,謝謝:) – Gerep 2011-05-23 13:56:20

1

is_array($variable)返回true,如果$variable包含數組,否則爲false。

+0

它贏了不工作,因爲我總是有一個對象作爲返回,並且這個對象有一個數組裏面,我需要檢查是否這個對象內部是一個對象數組 – Gerep 2011-05-23 14:02:45

0

要測試類的對象的:

if ($var instanceof ErrorBase) { 

爲了測試是否它是一個數組:

if (is_array($var)) { 
0

使用gettype()到返回VARS類型。

或使用is_array/is_object來測試每個

+1

它會始終返回一個對象...我需要檢查該對象內部的內容...不是對象是什麼... – Gerep 2011-05-23 14:04:38