Алексей Владимирович

Почему так работает? Я имею в виду, что не ругается на эфемерный $x. Сначала я вместо него указал $array, а потом решил попробовать, что будет, если на необъявленную переменную сослаться. И результат тот же, проверку проходит...

    $array = str_split($str); // array from letters

    $answer = array_sum(array_map(function ($x) {
        return ord($x);
    }, $array));

    return $answer;

5 0

Не понял почему вы используете слово "эфимерный". В вашем случае $x это формальный параметр, на имя формальных параметров не накладывается никаких ограничений. Главное что внутри функции вы используете именно эту переменную.

0

До $x я использовал на этом же месте переменную $array. Но и в том случае не было ошибки. А ведь в этой программе/функции это значащая переменная.

0

Формальный параметр функции задает локальную переменную, не важно что ее имя такое же что и на уровень выше, эти переменные между собой никак не связаны, хоть и могут обладать одинаковыми именами. В основах php был урок про окружения, видимо вам стоит его повторить.

0

Да там всё в куче. Где-то эта переменная ловится, где-то нет. Не сложилось однозначной картины этого. Только методом тыка.

0

function ($x) {
        return ord($x);
}

Вот функция, и ей все равно на все переменные снаружи как бы они не назывались.

0

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

Sergei 01 августа 2017 →

Подскажите где прочитать о плюсах написания функция в одну строку, читаемость же явно понижается? Или это о...

Андрей Свитлов 29 июня 2017 →

Как подключить библиотеку Functional\map чтобы использовать \DirectoryIterator() ?

Rishat Sultanov 17 апреля 2017 →

function powerOfString($str) { return array_sum(array_map(function ($item) { return ord($item)...

Андрей Свитлов 09 марта 2017 →

получается array_map после обработки массива возвращает массив с новыми ключами, а как быть если мне нужно ...

Андрей Свитлов 18 января 2017 →

Скажите а зачем удаляется мое решение в практике ? Я имею ввиду что я его прошел, через некоторое время реш...

Мы учим программированию с нуля до стажировки и работы. Попробуйте наш бесплатный курс «Введение в программирование» или полные программы обучения по Node, PHP, Python и Java.

Хекслет

Подробнее о том, почему наше обучение работает →