2015-08-08 56 views
2

我在static函数中有一个foreach循环。但由于某种原因,它只能做一个循环。我究竟做错了什么?PHP foreach在静态函数中

static function printall(){ 
    foreach (self::$products as $product){ 
     return print_r($product); 
    } 
} 

这给了我:

Array 
(
    [0] => 700152 
    [1] => 21.0000 
    [2] => 5.2000 
    [3] => 24.7900 
) 

但是,当我print_r的自我:: $产品我得到这个:

Array 
(
    [0] => Array 
     (
      [0] => 700152 
      [1] => 21.0000 
      [2] => 5.2000 
      [3] => 24.7900 
     ) 

    [1] => Array 
     (
      [0] => 700000 
      [1] => 21.0000 
      [2] => 3.4700 
      [3] => 16.5200 
     ) 

    [2] => Array 
     (
      [0] => 705300 
      [1] => 21.0000 
      [2] => 1.3900 
      [3] => 6.6100 
     )  
) 
+4

** return **停止方法。 – Rizier123

+0

愚蠢愚蠢,谢谢!知道它会是愚蠢的 – Nautilus

回答

4

return声明返回值终止功能,所以循环只运行一次迭代。只要放下它,你应该没问题:

static function printall(){ 
    foreach (self::$products as $product){ 
     print_r($product); 
    } 
}