Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php中丢失的var_Php_Yii - Fatal编程技术网

php中丢失的var

php中丢失的var,php,yii,Php,Yii,我对PHP和Yii是相当陌生的,我的问题不是,也不是谷歌的问题,所以我能想到的唯一一件事就是向这个列表提问,我已经解决了很多问题 问题如下:在我所附的代码中,我阅读了我保存在数组中的几条记录,以及在处理之后 好的,如果您首先查看foreach中的调试条目,一切正常,变量$items被加载,但是当我进入第二个调试$items时,变量的元素数正确,但元素为空:count($items)=2但是$items[0]和$items[1]arenull $idiomas=CListaMidiomas::mo

我对PHP和Yii是相当陌生的,我的问题不是,也不是谷歌的问题,所以我能想到的唯一一件事就是向这个列表提问,我已经解决了很多问题

问题如下:在我所附的代码中,我阅读了我保存在数组中的几条记录,以及在处理之后

好的,如果您首先查看foreach中的调试条目,一切正常,变量
$items
被加载,但是当我进入第二个调试
$items
时,变量的元素数正确,但元素为空:
count($items)=2
但是
$items[0]
$items[1]
are
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>";
}
$idiomas=clistamsidiomas::model()->findAll();
$items=array();
$nombre=array();
$a=0;
foreach($idiomas作为$idioma){
$nombre[$a]=$idioma->sIdioma;
$items[$a]=TBLCategoristexto::model()->findAll(
数组('condition'=>'id='.$data->id.'AND idIdioma='.$idioma->id_idioma));
回声“
--aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa; CVarDumper::dump($items);//此时此刻是正确的 如果(空($items[$a])| |$items[$a]==null){//不输入,因为$items有内容 $items[$a]=新的TBLCategoristexto(); $items[$a]->idIdioma=$idioma->id\u idioma; } $a++; }
回声“>>>>>>>>>>”。计数($items)// 尝试更改此行:

if(isset($items[$a]->$campo)) {
    $out.=$items[$a]->$campo . ",";
}
此行:
如果(空($items[$a])| |$items[$a]=null){
将始终将
$items[$a]
分配给
null


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

执行
var_dump($items)
并查看其中的内容。可能它没有对子项使用索引0和1。
dump
方法做什么?它是否仅
var_dump()
或者它做了其他的事情吗?比如重置变量?你得到了什么错误?我猜
tc1
tc20
并不是所有
$items[]
的所有属性。你能给我们看看输出吗?我很好奇第二次调用.CVarDumper::dump($items);第一次调用.CVarDumper::dump($items)会显示什么;数组(0=>array(0=>TblCategoriastexto)1([CActiveRecord:[U md]=>CActiveRecordMetaData]2([tableSchema]=>CMysqlTableSchema]3([schemaName]=>null[name]=>tbl\U categoriastexto'[rawName]=>tbl\U categoriastexto'[primaryKey]=>array(0=>id'1=>idIdioma')[sequenceName]=>(0=>'c_lista_midiomas'1=>'id_idioma')i..在第二个数组中:>>>>>>>>>>>>>>>>>>>2数组(0=>null 1=>null)Castellano:----0----null加泰罗尼亚语:--1----null问题是如果(isset($items[$a]>$campo))命中,$items的内容会消失{…我知道错误将消失,但变量丢失的问题将继续困扰我,但我没有响应…不让我使用原始格式@Marc,谢谢@kekkis,这是真的。我已经纠正了,但是…肯定还有其他问题,因为在$out行中。=$items[$a]->$field。“”不断出现的$items[0]=null和$items[1]=null不知道为什么,但是如果我使用TBLCategoristexto::model()->find(而不是TBLCategoristexto::model()->findAll)(它可以工作,因为我只需要一条记录……感谢大家