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

Match не возвращает значения?

22.02.2023, 16:24. Показов 3154. Ответов 63
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Попытался переписать код ниже на match.
Не могу понять в чем причина?
Ведь match возвращает значения через "=>",
но консоль пишет "none returned " че за бред?

Оригинальный код:
Кликните здесь для просмотра всего текста
PHP
1
2
3
4
5
6
7
8
9
10
11
12
function select($n): callable{
  
  switch($n){
  case 1:  return function($a, $b) {return $a + $b;}; 
  case 2:  return function($a, $b) {return $a - $b;};
  case 3:  return function($a, $b) {return $a * $b;};
  }
  
}
 
$selection = select(1);
echo $selection(4,5);



Моя попытка переписать оригинальный код на match:
Кликните здесь для просмотра всего текста
PHP
1
2
3
4
5
6
7
8
9
10
11
12
function select($a): callable{
  
  match($a){
  1 => function($b, $c) { return $b + $c; },
  2 => function($b, $c) { return $b - $c; },
  3 => function($b, $c) { return $b * $c; },
  };
 
}
 
$opa = select(1);
echo $opa(2,2);
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.02.2023, 16:24
Ответы с готовыми решениями:

Preg_match возвращает match[0] c пробелами
Здравствуйте камрады! Помогите разобраться.... Делаю проверку на валидность кода: $value = '<iframe...

Метод match() возвращает null, выражение не совпадает
Я делаю поиск, то, что я ищу, есть в тексте, но результат говорит null; <script> var peoples = "Tonoyan Hakob 00374(263)33-51-42...

Почему Regex.Match() возвращает пустой результат?
Есть вот такой код : Regex rx = new Regex(@"send(.*)ass\\"); Regex rxe = new Regex(@"d(.*)ta"); Match match =...

63
Эксперт PHP
 Аватар для liris
5520 / 1203 / 164
Регистрация: 16.01.2023
Сообщений: 2,855
01.03.2023, 22:58
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от G_manX Посмотреть сообщение
Ну и я про тоже, она минимум для мидлов.
Если вас это утешит, когда я вёл программирование у школьников, мы решали схожую задачу с девятиклассниками. На С++.

Цитата Сообщение от G_manX Посмотреть сообщение
Как составить алгоритмы без знаний php?
Вот это вопрос. Представьте себе, алгоритмы успешно составлялись задолго до появления PHP.

Цитата Сообщение от G_manX Посмотреть сообщение
Таким образом я практикую мои скудные знания в php.
Вам предложили попрактиковаться на реальном примере. Собственно, я тоже подумывал о том, чтобы предложить вам реальный пример. Но меня опередили.

Цитата Сообщение от G_manX Посмотреть сообщение
То есть, мне нужно написать парсер строки?
Задача озвучена - вам нужно написать калькулятор, который умеет принимать на вход строку. Каким образом вы собираетесь разбирать эту строку - тут уже возможны вариации. И да, если вы этого еще не сделали - погуглите слово декомпозиция. Вам бы она пригодилась.
0
01.03.2023, 23:10

Не по теме:


Цитата Сообщение от liris Посмотреть сообщение
Если вас это утешит, когда я вёл программирование у школьников, мы решали схожую задачу с девятиклассниками. На С++.
Круто... Мне б в такую школу... :)
Ну у меня то не было вообще информатики. а институте преподаватель был справочником по паскалю, но не умел программировать.... А вот сын учился в одой из самых самых школ города, и такого уровня задач не было у них :(

0
2 / 2 / 0
Регистрация: 15.02.2022
Сообщений: 469
02.03.2023, 11:44  [ТС]
liris
Вообще это возможно сделать без регулярных выражений и eval?
Какие темы и паттерны по php нужно знать, чтобы это реализовать?

Добавлено через 15 секунд
voral
Вообще это возможно сделать без регулярных выражений и eval?
Какие темы и паттерны по php нужно знать, чтобы это реализовать?

Добавлено через 1 минуту
liris
погуглите слово декомпозиция.
Нашел про функциональную декомпозицию, это вы ее имели в виду?

Добавлено через 10 минут
Да вы угораете, нужно читать целую книгу
по обратной польской нотации, чтобы решить эту задачу =)
0
Эксперт PHP
 Аватар для liris
5520 / 1203 / 164
Регистрация: 16.01.2023
Сообщений: 2,855
02.03.2023, 12:44
Цитата Сообщение от G_manX Посмотреть сообщение
Вообще это возможно сделать без регулярных выражений и eval?
Возможно. Хотя с регулярками, конечно, было бы попроще. А eval в данном случае просто читерство.
Но задача очень даже реальная и вполне себе практически применимая.

Цитата Сообщение от G_manX Посмотреть сообщение
Да вы угораете, нужно читать целую книгу
Собственно идея задачи наверняка была в том, чтобы размять мозги и подумать над решением задачи, не прибегая к поиску готовых чужих решений (которые несомненно имеются и в немалом количестве).

Добавлено через 1 минуту
Цитата Сообщение от G_manX Посмотреть сообщение
Какие темы и паттерны по php нужно знать, чтобы это реализовать?
Вы узнаете ответ на этот вопрос, как только декомпозируете задачу. Но даже в первом приближении совершенно очевидно, что вам потребуется уметь работать со строками и приведением типов (чтобы привести значения, которые вы достали, к числовому виду).

Добавлено через 3 минуты
Вообще, наверное стоило бы для этого обсуждения создать отдельную тему? Мы уже ушли от первоначальной темы обсуждения.

Цитата Сообщение от G_manX Посмотреть сообщение
Ну и я про тоже, она минимум для мидлов.
Вообще, если вам сложно приступить к решению поставленной задачи, вы можете начать с написания класса, который впринципе умеет выполнять вычисления. И потихоньку приближаться к его способности воспринимать входные данные в виде одной строки.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.03.2023, 12:44

Почему string.match возвращает только одно совпадение ?
'ZzZ'.match(new RegExp(/zz/,'gi'))

Ошибка "Operand types do not match" при вычислении значения выражения
Выражение: X=A2+(B2*C1) - (D2/E1) + K .model small .stack 100h .data A2 dw 0Ch B2 dw 0Eh C1 db 2h D2 dw 0Ah E1 db 5h ...

Не возвращает значения
Ребят я не могу понять почему оно не записывает значения в переменные float height; int age; String name; И вопрос по...

Функция не возвращает значения
Вот и она: function start_container($mch) { $active = null; do { $mrc = curl_multi_exec($mch,...

DropDownListFor не возвращает значения
Люююди помогите,а ? Сутки сижу и не могу решить проблему с этим адским элементом, интернет не помог. Модель: public class...


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

Или воспользуйтесь поиском по форуму:
64
Ответ Создать тему
Новые блоги и статьи
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru