2013-02-08 57 views
0

我对PHP和Yii相当陌生,而且我不是,也不是谷歌中的问题,所以我唯一能想到的问题就是将问题提问到我已经解决的列表中很多问题。在PHP中丢失的变量var

问题如下:在我附加的代码中,我读了几个记录,这些记录保存在数组中并在处理后。

好吧,如果你看一下的foreach调试条目中,他第一次,一切顺利的话和可变$items被加载,但是当我到达第二调试$items变量具有正确的元素数量,但元素空:count ($items) = 2$items[0]$items[1]null

$idiomas=CListaMidiomas::model()->findAll(); 
$items=array(); 
$nombre=array(); 
$a=0; 
foreach ($idiomas as $idioma){ 
    $nombre[$a]=$idioma->sIdioma; 
$items[$a]=TblCategoriastexto::model()->findAll(
     array('condition'=>'id='.$data->id.' AND idIdioma='.$idioma->id_idioma)); 
echo "<br>---AAAAAAAAAAA--".$a."-----------<br>"; 
CVarDumper::dump($items); //in this moment is correct 
if (empty($items[$a]) ||$items[$a]==null){ // not enter because $items have content 
    $items[$a]=new TblCategoriastexto(); 
    $items[$a]->idIdioma=$idioma->id_idioma; 
} 
$a++; 
} 
echo ">>>>>>>>>>>>>>>".count($items) ; //<<<<<<<<<<present 2 
CVarDumper::dump($items);    // but in this moment t0 2 are null 

for ($a=0;$a<count($items) ;$a++){ 
echo "<b>".CHtml::encode($nombre[$a]).":</b>"; 
$out=""; 
$item=$items[$a]; 
echo "<br>-----".$a."-----------<br>"; 
CVarDumper::dump($items[$a]);<<<<<<<<<<<<<<<<<<<<<<<<null 
for ($b=1;$b<=20;$b++){ 
    $campo="tc".$b; 
    $out.=$items[$a]->$campo . ",";<<<<<<<<<<<<<<<<error 
} 
echo CHtml::encode($out); 
echo"<br>"; 
} 
+0

做一个'var_dump($ items)'看看里面到底有什么。也许它没有使用索引0和1作为子条目。 – 2013-02-08 17:20:32

+0

'dump'方法有什么作用?它只是'var_dump()'还是做别的事情?像重置变量? – 2013-02-08 17:21:16

+0

你有什么错误?我的猜测是'tc1'到'tc20'不是所有'$ items []'的全部属性。 – Pitchinnate 2013-02-08 18:27:49

回答

0

本LI ne:if (empty($items[$a]) ||$items[$a]=null){将始终将$items[$a]分配给null

要比较值,请使用比较(等于)运算符==而不是赋值运算符=

+0

谢谢@kekkis,这是真的。我已经更正了,但是...必须有其他问题,因为在$ out行。 = $ items [$ a] - > $ field。 “,”保持来 $ items [0] = null和$ items [1] = null – migarcia 2013-02-09 07:55:46

+0

不知道为什么,但如果我使用TblCategoriastexto :: model() - > find(而不是TblCategoriastexto :: model() > findAll(它的工作原理,因为我只是想要一个记录....感谢所有 – migarcia 2013-02-09 08:28:19

0

尝试改变这一行:

if(isset($items[$a]->$campo)) { 
    $out.=$items[$a]->$campo . ","; 
} 
+0

CVarDumper :: dump($ items); <<<<转储数组 – migarcia 2013-02-08 19:07:32

+0

第一个CVarDumper :: dump($ items); (0 =>数组(0 => TblCategoriastexto#1([CActiveRecord:_md] => CActiveRecordMetaData#2([tableSchema] => CMysqlTableSchema#3([schemaName] => null [name] =>'tbl_categoriastexto' [rawName] =>'tbl_categoriastexto'[primaryKey] => array(0 =>'id'1 =>'idIdioma')[sequenceName] =>'[foreignKeys] => array('idIdioma'=> array(0 =>'c_lista_midiomas'1 =>'id_idioma')'i .... – migarcia 2013-02-08 19:08:17

+0

第二行: >>>>>>>>>>>>>>> 2 array(0 => null 1 = >空)卡斯特拉诺: ----- 0 ----------- 空 加泰罗尼亚: ----- 1 ----------- 空 问题是$ items的内容消失 – migarcia 2013-02-08 19:08:34