rishatss
@rishatss
Simple Developer ^)

Как правильно понимать данный код?

Добрый день господа.
Вот функциональное программирование как я понимаю.
Вычисляется сумма ASCII кодов букв строки.

function powerOfString($str)
{

    return array_sum(array_map(function ($item) {
        return ord($item);
    }, str_split($str)));

}

Прошу исправить мое понимание данной функции если оно неверно.

Данная функция первым делом работает с анонимной лямбда функцией, которая возвращает ASCII код символа и заносит каждый элемент обратно в массив, вместо обычных символов ASCII код символа. Далее array_sum суммирует все элементы массива.

str_split($str))); в конце кода, разбивает строку на массив. Но как-то я не до конца пойму по какой последовательности все работает и как организована функция array_map и чем она отличается от map();
Спасибо за помощь :)
  • Вопрос задан
  • 166 просмотров
Решения вопроса 2
webinar
@webinar Куратор тега PHP
Учим yii: https://youtu.be/-WRMlGHLgRg
функция array_map и чем она отличается от map()

Тем что первая (array_map) - это функция php, а вторая видимо придумана или взята из другого языка.
Ответ написан
@neol
У вас порядок действий в голове немного перепутался. Возможно из-за обилия скобочек.

Может так будет проще понять (этот код равнозначен приведённому вами):
return array_sum(
    array_map('func', str_split($str))
);

function func($item) {
        return ord($item);
}


array_sum вызывает array_map, который вызывает func и str_split

Первым завершится str_split, вернув в array_map пригодный для употребления массив, каждый элемент которого будет обработан функцией func и затем array_sum просуммирует значения всех элементов получившегося массива.

PS Как заметили в предыдущем ответе, функции map в php нет.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы