За последние 24 часа нас посетили 18415 программистов и 1634 робота. Сейчас ищут 1666 программистов ...

Вопрос по функции array_product

Тема в разделе "PHP для новичков", создана пользователем Kostigator, 4 май 2012.

  1. Kostigator

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

    С нами с:
    4 май 2012
    Сообщения:
    9
    Симпатии:
    0
    Есть такая функция для работы с массивами как array_product, считает произведение всех элементов
    http://www.php.ru/manual/function.array-product.html

    Если в нее передать инициализацию пустого массива: product(array())
    То возвращает единицу.

    Почему?
     
  2. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Че для слепых все равно не видно?)))

    Возвращаемые значения
    Возвращает произведение как тип integer или float.
     
  3. Kostigator

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

    С нами с:
    4 май 2012
    Сообщения:
    9
    Симпатии:
    0
    Это-то я видел, но все равно не понял. Как произведение единицей получается? Можете еще тупым назвать, только объясните)
     
  4. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Полезно все прочтите от и до =))
    php.net/manual/ru/language.types.array.php

    И почему, то у меня вернуло
    Код (PHP):
    1. echo array_product(array());//0   
     
  5. Kostigator

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

    С нами с:
    4 май 2012
    Сообщения:
    9
    Симпатии:
    0
    В разных версиях php разные значения возвращает:
    php5.36 возвращает 1
    php5.33 возвращает 0
    php5.2.17 возвращает 0
    На странице описания этой функции на php.net говорится, что такое выражение вернет 1.
     
  6. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Ну вот вы и ответили на свой вопрос самостоятельно ;)
     
  7. Kostigator

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

    С нами с:
    4 май 2012
    Сообщения:
    9
    Симпатии:
    0
    Был баг https://bugs.php.net/bug.php?id=48484 который возврашал ноль вместо единицы, если кому интересно, его исправили.
    Для тех задач, для которых нужна эта функция, нужно чтобы возвращалась единица. Конечно произведение без множителей не имеет смысла, поэтому по умолчанию "1" должно быть.