Задать вопрос
Yura_Mart
@Yura_Mart

Как правильно вызвать функцию внутри функции?

Народ, подскажите как быть?

Ошибка возникает в строке $data = get_node_data($parent_category_id);, пишет Uncaught Error: Call to undefined function get_node_data()

function get_category_tree()
{
    global $connection;
    $parent_category_id = 0;
    $query = "SELECT * FROM category";
    $res = mysqli_query($connection, $query);
    $result = mysqli_fetch_all($res);

    foreach ($result as $row) {
        $data = get_node_data($parent_category_id);
    }
    return $data;

    function get_node_data($parent_category_id)
    {
        global $connection;
        $query = "SELECT * FROM category WHERE parent_id = '$parent_category_id'";
        $res = mysqli_query($connection, $query);
        $output = array();
        while ($row = mysqli_fetch_assoc($res)) {
            $sub_array = array();

            $sub_array['text'] = $row['title'];
            $sub_array['type'] = $row['category_type'];
            $sub_array['nodes'] = array_values(get_node_data($row['id']));

            $output[] = $sub_array;
        }

        return $output;
    }
}


Хотя если убрать
function get_category_tree(){
}
т.е. запускать не как функцию, а просто код и вместо return $data; , использовать
echo json_encode(array_values($data), JSON_UNESCAPED_UNICODE);
, то всё работает

Что нужно подправить, чтобы вызвать функцию внутри функции?
  • Вопрос задан
  • 108 просмотров
Подписаться 1 Простой 3 комментария
Решения вопроса 1
@galaxy
Вставьте функцию get_node_data в начале get_category_tree, до того, как она вызывается
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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