Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
2 / 2 / 0
Регистрация: 15.02.2022
Сообщений: 469

Очень старый код с использованием array map

22.10.2022, 14:24. Показов 485. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
На одном старом сайте нашел очень странный код.
Почему в древние времена указывали тип элементов массива в аргументах функции
и ставили двоеточие после конца аргументов?
Затем я решил переписать этот старый код на свой лад.

Этот же код отлично работает без указания типа элементов массива.
Так зачем это было нужно?
Что делает двоеточие?



Код со старого сайта:
PHP
1
2
3
4
5
6
7
$fun = function(int $value):int {   // для чего нужно двоеточие (:) а затем int? 
return $value * 2;                  // зачем указывать тип элементов(int) массива в аргументах?
};
 
$result = array_map($fun, range(2,5));  
 
echo implode(",", $result);

Код на мой лад:
PHP
1
2
3
4
5
6
7
8
9
$fun = function($value) {
return $value * 2;
};
 
$massive =[2,3,4,5];
 
$result = array_map($fun, $massive);  
 
echo "<br>".implode(",", $result);
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.10.2022, 14:24
Ответы с готовыми решениями:

Как с использованием map и lambda-функции преобразовать этот код?
# -*- coding: utf-8 -*- from lxml import html import requests page = requests.get('http://tass.ru/rss/v2.xml') tree =...

Как этот код переделать с использованием модуля array? Или какой модуль ему подойдёт больше?
input_str = str(input()) print(input_str.index(‘ ‘) + 1) Можно его как-то переделать с использованием библиотек?

кто может преобразовать код из Паскаля на С++ с использованием библиотеки SFML? очень нужно,
program Nu_pogodi; //3-3 Добавляем модуль Timers uses GraphABC, Timers; //3-4 Начальная скорость игры const ...

13
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
22.10.2022, 14:28
Цитата Сообщение от G_manX Посмотреть сообщение
Почему в древние времена указывали тип элементов массива в аргументах функции
и ставили двоеточие после конца аргументов?
Всё ровно наоборот, в древние времена никаких типов не указывали.
Цитата Сообщение от G_manX Посмотреть сообщение
Этот же код отлично работает без указания типа элементов массива.
Так зачем это было нужно?
Чтобы если программист накосячит и передаст в функцию параметр некорректного типа, интерпретатор дал ему по рукам. Кроме того, читать такой код гораздо легче.
0
Надуваю лягушек
Эксперт PHP
 Аватар для Царь Бабай
289 / 219 / 93
Регистрация: 01.05.2014
Сообщений: 742
22.10.2022, 14:29
Наверное, чтоб кроме INT (чисел целых) ничего не подставили лишнего (alert или eval).
0
2 / 2 / 0
Регистрация: 15.02.2022
Сообщений: 469
22.10.2022, 14:34  [ТС]
Jewbacabra а что делает двоеточие :
Что это такое?

Добавлено через 3 минуты
Jewbacabra,
Чтобы если программист накосячит и передаст в функцию параметр некорректного типа, интерпретатор дал ему по рукам.
PHP
1
2
3
4
5
6
$fun = function(int $value):int {   
return $value * 2;                 
 
$result = array_map($fun, range('d',1));  
 
echo implode(",", $result);
Поставил строку 'd' в range, что-то интерпретатор не ругается, че за магия?
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
22.10.2022, 14:42
Цитата Сообщение от G_manX Посмотреть сообщение
а что делает двоеточие :
Указывает тип возвращаемого значения
Цитата Сообщение от G_manX Посмотреть сообщение
Поставил строку 'd' в range, что-то интерпретатор не ругается, че за магия?
Если не читать документацию, то всё будет казаться магией. Range вполне может принять строку в качестве аргумента.
0
2 / 2 / 0
Регистрация: 15.02.2022
Сообщений: 469
22.10.2022, 14:45  [ТС]
Jewbacabra

PHP
1
$fun = function(int $value):int {
Где :int - вернуть тип данных в виде числа?
Где int в аргументе функции - установить тип данных число аргументу функции?
Верно ли я понял?
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
22.10.2022, 14:46
Цитата Сообщение от G_manX Посмотреть сообщение
Верно ли я понял?
да.
0
2 / 2 / 0
Регистрация: 15.02.2022
Сообщений: 469
22.10.2022, 14:50  [ТС]
Jewbacabra,
А двоеточие это оператор?
Где можно прочитать про него?
Я в Гугле не могу найти инфу про это.
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
22.10.2022, 14:56
Цитата Сообщение от G_manX Посмотреть сообщение
А двоеточие это оператор?
Нет. Скорее это ключевое "слово"
Цитата Сообщение от G_manX Посмотреть сообщение
Где можно прочитать про него?
https://www.php.net/manual/ru/... ations.php
0
2 / 2 / 0
Регистрация: 15.02.2022
Сообщений: 469
22.10.2022, 15:25  [ТС]
Jewbacabra,
php это же язык с динамической типизацией?
а значит тип данных указывать необязательно?
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
22.10.2022, 15:30
Цитата Сообщение от G_manX Посмотреть сообщение
php это же язык с динамической типизацией?
а значит тип данных указывать необязательно?
Не обязательно. Но в средних и больших проектах это сильно облегчает жизнь.
0
2 / 2 / 0
Регистрация: 15.02.2022
Сообщений: 469
22.10.2022, 15:47  [ТС]
Jewbacabra,
Остался последний вопрос:
Здесь функция возвращает только один тип данных это строка,
так как после аргументов функции я указал "string"
а как сделать, чтобы функция помимо "string" возвращала еще и число.

Как я это вижу:
PHP
1
function show(int $a, string $b):string, :int{     // такой синтаксис бывает?
Полный код:
PHP
1
2
3
4
5
6
7
8
9
10
11
function show(int $a, string $b):string{                 
return "Число:{$a} буква:{$b} <br>";   
}                                      
 
$number =[1,2,3,4,5];
$str  = ['a','b','c','d','e'];
 
 
$result = array_map('show', $number, $str);
 
echo implode("", $result);
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
22.10.2022, 16:00
Цитата Сообщение от G_manX Посмотреть сообщение
а как сделать, чтобы функция помимо "string" возвращала еще и число.
Если надо чтобы функция возвращала строку ИЛИ число, то в документации по ссылке выше написано как это можно сделать (хотя особо увлекаться этим не стоит).
А тут return "Число:{$a} буква:{$b} <br>"; возвращается одно значние типа строка. В php функция не может возвращать больше одного значения.
0
2 / 2 / 0
Регистрация: 15.02.2022
Сообщений: 469
22.10.2022, 16:18  [ТС]
Jewbacabra, не или, а сразу два типа данных строку и число
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.10.2022, 16:18
Помогаю со студенческими работами здесь

Использование метода Array.map
Не могу понять как решить эту задачу: Перед вами переменная, содержащая строку. Напишите код, создающий массив, который будет состоять из...

is not a function, array, list, map or macro
Начинаю изучать Pure Basic. Скачал разных примеров и обучалок. При запуске многих исходников вылезает ошибка: &quot;WindowsEnum() is not...

Как изменять данные в array.map?
Использую данный код, но вот данные не преобразуются не пойму почему Order.find() .then(orders =&gt; { orders =...

В новых учебниках по PHP8 нет array map?
Во многих учебниках по PHP8 почему-то не упоминается про array map? У меня возникло ощущение, раз не упоминают в новых учебниках про...

Не срабатывает функция map на props: Array<IMyProps>
Всем привет, возникла странная ошибка: Использую React + TypeScript render(): JSX.Element { return ( &lt;div&gt; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru