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

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

22.12.2017, 14:56. Просмотров 290. Ответов 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.12.2017, 14:56
Ответы с готовыми решениями:

Как в PHP отделить элементы друг от друга, чтобы не ругались друг на друга?
<?php $chitat = fopen('yoo.txt', 'r'); if (!$chitat) { echo 'Ошибка при открытии файла...

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

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

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

1
ytf
263 / 257 / 184
Регистрация: 15.08.2017
Сообщений: 1,483
22.12.2017, 18:05 2
Цитата Сообщение от bystrewsky Посмотреть сообщение
Вот, собственно, json
если это json, то пропущены открывающая и закрывающая фигурные скобки
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.12.2017, 18:05

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

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

Вычислить значения функции на отрезке в заданном числе равномерно отстоящих друг от друга точек
Вычислить значения функции на отрезке в заданном числе равномерно отстоящих друг от друга точек /...

Вычислить значения функции на отрезке в заданном числе N равномерно отстоящих друг от друга точек
Помогите пожалуйста

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


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

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

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