2015-08-08 4 views
2

У меня есть foreach цикл в функции static. Но по какой-то причине он делает только один цикл. Что я делаю не так?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); 
    } 
} 
Смежные вопросы