foreach是不行的,只能应用于array。

解决方案 »

  1.   

    class test {
      var $var1 = "1";
      var $var2 = "2";
      var $var3 = "3";
    }foreach(new test as $k=>$v) {
      echo "$k => $v<br>";
    }
      

  2.   

    参见PHP手册范例:
    <?php
    class User {
    var $test;
    var $test2;
    }$user1 = new User();
    $user2 = new User();
    $user1->test = "user1's test";
    $user1->test2 = "user1's test2";
    $user2->test = "user2's test";
    $user2->test2 = "user2's test2";
    print_r($user1); print_r($user2);
    foreach($user1 as $key => $value)
    $user2->$key = $value;
    print_r($user1); print_r($user2);
    ?>
    Which outputs:
    User Object: user1
       [test] => user1's test
       [test2] => user1's test2
    User Object: user2
       [test] => user2's test
       [test2] => user2's test2
    User Object: user1
       [test] => user1's test
       [test2] => user1's test2
    User Object: user2
       [test] => user1's test
       [test2] => user1's test2
    This is particularly useful when you want to assign a different instance of the same class to $this- I have a standard method that I call when I need to do that:
    <?php
    function assignToThis($new)  {
    foreach($new as $key => $value)
    $this->$key=$value;
    }
    ?>
      

  3.   


    php4 可以用 get_object_vars
      

  4.   

    class test {
      var $var1= "1";
      var $var2= "2";
      var $var3= "3";
    }echo PHP_VERSION; 
    foreach(new test as $k=>$v) {
      echo "$k => $v<br/>";
    }输出:
    4.3.2
    var1 => 1
    var2 => 2
    var3 => 3谁说php4中foreach只用于数组?
      

  5.   

    foreach的功能是非常强大的,不能忽视的说!
      

  6.   

    呵呵,遗憾的是手册里这样说:
    PHP 4 引入了 foreach 结构,和 Perl 以及其他语言很像。这只是一种遍历数组简便方法。foreach 仅能用于数组,当试图将其用于其它数据类型或者一个未初始化的变量时会产生错误。有两种语法,第二种比较次要但却是第一种的有用的扩展。 
    ....
    自PHP 5 起,还可能遍历对象。 
      

  7.   

    我觉得zeroleonhart是否有点完全否认他人的味道。