Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP
Войти
Регистрация
Восстановить пароль
 
bystrewsky
0 / 0 / 3
Регистрация: 25.09.2014
Сообщений: 20
#1

Остановить 2 функции рекурсивно вызывающие друг друга - PHP

22.12.2017, 14:56. Просмотров 88. Ответов 1
Метки нет (Все метки)

У меня есть две функции которые могут вызывать друг друга (первая берет массив с действиями из json файла, вторая парсит этот массив)

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
 public static function goToAction($action,$sender_id)
    {
        $actions = array();
        $logic = file_get_contents('../../logic/logic.json');
        $logic_array = json_decode($logic, true);
        unset($logic);
        if (!isset($logic_array[$action])) {
            return false;
        } else {
            foreach ($logic_array[$action] as $action) {
                $actions[] = self::parseActionType($action,$sender_id);
            }
        }
        return $actions;
    }
    
 
     public static function parseActionType($actions,$sender_id)
    {
        $data = array();
        foreach ($actions as $key => $action) {
            switch ($key) {
                case 'goto': { 
                          $goto_actions = self::goToAction($action,$sender_id);
                          foreach ($goto_actions as $goto_action){
                          $data[] = $goto_action;
                      } break;
                      ...
       }
    }
    return $data;
    }
Вот, собственно, json

JSON
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 "no_return": [
    { "text": "Должно быть: 1, 2, 3"},
    { "text": "1" },
    { "goto": "2nr", "no_return": true},
    { "text": "5" }
    ],
    "2nr": [
    { "text": "2" },
    { "goto": "3nr", "no_return": true},
    { "text": "4"}
    ],
    "3nr": [
    { "text": "3" }
    ],
Возвращается массив

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
[2] => Array
        (
            [text] => 1
        )
 
    [3] => Array
        (
            [0] => Array
                (
                    [text] => 2
                )
 
            [1] => Array
                (
                    [0] => Array
                        (
                            [text] => 3
                        )
 
                )
 
            [2] => Array
                (
                    [text] => 4
                )
 
        )
 
    [4] => Array
        (
            [text] => 5
        )
Как я могу сделать так, чтобы функция возвращала только 1 2 и 3 если no_return установлен true?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.12.2017, 14:56
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Остановить 2 функции рекурсивно вызывающие друг друга (PHP):

Как отображать сообщения в форуме так, чтобы они не накладывались друг на друга?
Делаю форум, и сталкнулся с такой проблемой. Как отображать сообщения так что...

Наложение друг на друга картинок-ссылок
собстна вопрос в самой теме.

Нарисовать 5 вписанных друг в друга геометрических фигур
Мне нужно нарисовать 5 вписанных друг в друга геометрических фигур

Найти положение заданных прямой и окружности относительно друг друга при помощи оператора if
Заданы окружность радиуса R с центром в начале коор¬динат и прямая, проходящая...

Установил PHP и MySql на Win 2000 под IIS но они друг друга не видят. Помогите
Установил PHP и MySql на Win 2000 под IIS но они друг друга не видят....

Как сделать, чтобы в на сайте юзеры могли видеть друг-друга и соединяться для игры?
Как сделать, чтобы в на сайте юзеры могли видеть друг-друга и соединяться для...

1
ytf
199 / 212 / 174
Регистрация: 15.08.2017
Сообщений: 1,183
22.12.2017, 18:05 #2
Цитата Сообщение от bystrewsky Посмотреть сообщение
Вот, собственно, json
если это json, то пропущены открывающая и закрывающая фигурные скобки
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.12.2017, 18:05
Привет! Вот еще темы с решениями:

Две функции вызывающие друг-друга
В моей программе есть две функции, которые вызывают друг-друга. Из-за этого...

Два класса, вызывающие друг друга
У меня есть файл class1.h и файл class2.h внутри класса 1 вызывается класс 2...

При выполнении функции надписи Label накладываются друг на друга
Программа должна выводить информацию о дисках в системе (локальных, cddvd-romax...

Посчитать две изменяющиеся функции которые умножаются друг на друга
Здраствуйте. Мне дали задание написать программу которая вычисляет значение...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru