За последние 24 часа нас посетили 18718 программистов и 1703 робота. Сейчас ищут 615 программистов ...

Возможно вопрос глупый, но не знаю ответ "функции"

Тема в разделе "PHP для новичков", создана пользователем kentkent7, 13 июл 2017.

  1. kentkent7

    kentkent7 Новичок

    С нами с:
    30 июн 2017
    Сообщения:
    72
    Симпатии:
    5
    Если есть что-то из "говнокода", критикуйте я только учусь :)
    --- Добавлено ---
    Почему элементы массива выводятся так:


    PHP:
    1. <?php
    2.  
    3. $array = [ 'velo' => [
    4.     'bmx' => 22,
    5.     'stels' => 23
    6. ],
    7.     'auto' => [
    8.         'audi' => 23,
    9.         'bmw' => 10
    10.     ],
    11.  
    12.     'product' => 23
    13. ];
    14.  
    15.  
    16.  
    17. function ArrayCount ($array, $e = 0) {
    18.     static $c;
    19.     static $d;
    20.     foreach ($array as $value) {
    21.      
    22.        $d++;
    23.      
    24.         if (is_array($value)) {
    25.             ArrayCount ($value);
    26.         } else {
    27.             $c += $value;
    28.             $e +=  $d;
    29.         }
    30.     }
    31.   return $ArrayItem = ['item' => $e, 'product' => $c];            
    32.  
    33. }
    34.  
    35. $a = ArrayCount ($array);
    36.  
    37. echo $a ['item'] . "<br>";
    38. echo $a ['product'];
    39.  
    40. ?>
    И не выводятся так:

    PHP:
    1. function ArrayCount ($array, $e = 0) {
    2.     static $c;
    3.     static $d;
    4.     foreach ($array as $value) {
    5.      
    6.        $d++;
    7.      
    8.         if (is_array($value)) {
    9.             ArrayCount ($value);
    10.         } else {
    11.             $c += $value;
    12.             $e +=  $d;
    13.         }
    14.     }
    15.   return $ArrayItem = ['item' => $e, 'product' => $c];            
    16. echo $ArrayItem ['item'] . "<br>";
    17. echo $ArrayItem ['product'];
    18. }
    19.  
    20. ArrayCount ($array);
     
    #1 kentkent7, 13 июл 2017
    Последнее редактирование модератором: 13 июл 2017
  2. Алекс8

    Алекс8 Активный пользователь

    С нами с:
    18 май 2017
    Сообщения:
    1.730
    Симпатии:
    359
    потому что во второй функции стоит return $ArrayItem = ['item' => $e, 'product' => $c];
    а после него вывод.... до вывода не доходит дело
     
  3. kentkent7

    kentkent7 Новичок

    С нами с:
    30 июн 2017
    Сообщения:
    72
    Симпатии:
    5
    Почему элементы массива выводятся так:


    PHP:
    1. <?php
    2.  
    3. $array = [ 'velo' => [
    4.     'bmx' => 22,
    5.     'stels' => 23
    6. ],
    7.     'auto' => [
    8.         'audi' => 23,
    9.         'bmw' => 10
    10.     ],
    11.     'product' => 23
    12. ];
    13.  
    14.  
    15.  
    16. function ArrayCount ($array, $e = 0) {
    17.     static $c;
    18.     static $d;
    19.     foreach ($array as $value) {
    20.    
    21.        $d++;
    22.    
    23.         if (is_array($value)) {
    24.             ArrayCount ($value);
    25.         } else {
    26.             $c += $value;
    27.             $e +=  $d;
    28.         }
    29.     }
    30.   return $ArrayItem = ['item' => $e, 'product' => $c];            
    31.  
    32. }
    33.  
    34. $a = ArrayCount ($array);
    35.  
    36. echo $a ['item'] . "<br>";
    37. echo $a ['product'];
    38.  
    39. ?>
    И не выво
    Спасибо, а как быть, когда нужно выводить при вызове функции?
     
    #3 kentkent7, 13 июл 2017
    Последнее редактирование модератором: 13 июл 2017
  4. Алекс8

    Алекс8 Активный пользователь

    С нами с:
    18 май 2017
    Сообщения:
    1.730
    Симпатии:
    359
    1. Когда вставляете код нажимайте первую кнопку в меню редактора вот так она выглядит </> и там вставляйте код..
    2. Форматирование делайте сразу)) код должен быть красивым.
    3. Опустить делать вывод на экран до выхода из функции)
     
    kentkent7 нравится это.
  5. kentkent7

    kentkent7 Новичок

    С нами с:
    30 июн 2017
    Сообщения:
    72
    Симпатии:
    5
    Спасибо!