2010-06-15 113 views
0

is_array($src2->crit)正在生成「未定義的屬性:stdClass :: $ crit」錯誤。

行引發錯誤是: if(is_array($src2->crit) && count($src->crit) > 0){

$src2->crit這裏初始化。

$src2->crit = array(); 
$src2->crit[0] = new dataSet(); 
$src2->crit[0]->tblName = $tbl2; 
$src2->crit[0]->colName = "ID"; 
$src2->crit[0]->val = $elm->editID; 

用此代碼測試$src2->crit時。

print("\$src->crit is a ".$src->crit."<br />"); 
print_r($src->crit); print("<br />"); 

返回。

$src2->crit is a Array 
Array ([0] => dataSet Object ([tblName] => sExam [colName] => ID [val] => 10)) 

什麼我沒有看到/理解正確?如果print("\$src2->crit is a ".$src->crit."<br />")返回它是一個數組,那麼爲什麼is_array($src2->$crit)產生一個錯誤?

+1

我很困惑,你說的榆樹 - >暴擊一個地方和$ src->暴擊在另一個... – Lizard 2010-06-15 13:40:29

回答

0

無法重現:

<?php 
$src2 = new stdClass(); 
$src2->crit = array(); 
$src2->crit[0] = new stdClass(); 
$src2->crit[0]->tblName = "whatever"; 
$src2->crit[0]->colName = "ID"; 
$src2->crit[0]->val = "value"; 
var_dump(is_array($src2->crit)); 

givesbool(true)

+0

我會檢查看看是否有其他東西扔掉它 – 2010-06-15 14:01:36

0

它看起來是你最大的問題(根據你在問題中發佈的信息)是你重現了一個不同的名稱?

$elm->crit 
$src->crit 
+0

榆樹是類正在分配給src變量。 – 2010-06-15 14:00:40

+0

我們需要發佈更多的代碼,你發佈的內容沒有意義 – Lizard 2010-06-15 14:13:01

0

print("\$src2->crit is a ".$src->crit."<br />")

is_array($src2->$crit)

這些事情之一是不喜歡對方!

人們引用$src2對象的crit屬性。

另一種是引用$crit屬性,意思是將變量$crit的值計算爲一個字符串,然後將該字符串值用作屬性名稱。

什麼是$crit定義爲?我敢打賭,這不是字符串!

相關問題