За последние 24 часа нас посетили 18510 программистов и 1706 роботов. Сейчас ищут 694 программиста ...

Вопрос по функции 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" должно быть.