代码如下
$i=0;
$name=$json->BabyActivityEntries[$i]->name;
var_dump(isset($name));
if(isset($name))
say($name); $i=0;
$name=$json->BabyActivityEntries[$i]->name;
var_dump(isset($name));
for(;isset($name);){
say($name);}say方法就是输出$name

解决方案 »

  1.   

    if(isset($name)) say($name);
    //或者
    if(isset($name)) {
        say($name);
    }
      

  2.   


    主要我想做成这样
    for($i=0,$name=$json->BabyActivityEntries[$i]->name;isset($name);$i++)
    {
    say($name);
    }可是不知道为什么不成  就自己试验最上面的代码  结果发现用for就不成  用if就可以
      

  3.   

    看错了照你的写法也是可以的。
    for()需要三个表达是,你只写了两个。记得把错误信息一起发上来啊。
    好好看一下手册中for循环的语法吧,为什么要写这么奇怪的代码呢?
      

  4.   

    for不是不行,而是你要有循环退出机制,否则就是死循环
      

  5.   

    for($i=0;$name=$json->BabyActivityEntries[$i]->name, isset($name); $i++) {
        say($name);
    }
      

  6.   

    所以要仔细看手册啊。
    第一个表达式只在循环开始前执行一次,第二个表达式是在每次循环开始前执行一次。
    按你原来的写法,相当于$name=$json->BabyActivityEntries[0]->name,然后$name的值就固定不变了。
      

  7.   

    这种情况下感觉用while更直观吧,for感觉怪怪的