it_proger29
@it_proger29
Битрикс

Где тут синтаксическая ошибка?

Здравствуйте, есть код, есть ошибка, синтаксическая.
<?php
//Получаем заказы текущего пользователя
    static function getOrdersByUser(){
        if (CModule::IncludeModule('sale'))
        {
             global $USER;
             $result = array();
             $arFilter = Array(
               "USER_ID" => $USER->GetID(),
               "DATE_CANCELED" => ""
         );

        $db_sales = CSaleOrder::GetList(array("DATE_INSERT" => "ASC"), $arFilter);
        while ($ar_sales = $db_sales->Fetch())
        {
           $result[] = $ar_sales;
        }

        return $result;
    }
}
//Получаем свойства заказа по ID
    static function GetPropsOfOrder($order_id){
        $arrResult = array();
        $obBasket = \Bitrix\Sale\Basket::getList(array('filter' => array('ORDER_ID' => $order_id)));
        while($bItem = $obBasket->Fetch()){
            $arrResult[] = $bItem;
        }
        return $arrResult;
    }
?>

Parse error: syntax error, unexpected 'getOrdersByUser' (T_STRING), expecting '(' in /components/bitrix/sale.personal.section/bootstrap_v5/template.php on line 596


Не могу найти синтаксическую ошибку :/
Буду рад если поможете! Заранее спасибо :)
  • Вопрос задан
  • 84 просмотра
Пригласить эксперта
Ответы на вопрос 1
Kalombyr
@Kalombyr
У Вас скобки "}" не хватает
static function getOrdersByUser(){
        if (CModule::IncludeModule('sale'))
        {
             global $USER;
             $result = array();
             $arFilter = Array(
               "USER_ID" => $USER->GetID(),
               "DATE_CANCELED" => ""
             );
        

             $db_sales = CSaleOrder::GetList(array("DATE_INSERT" => "ASC"), $arFilter);
             while ($ar_sales = $db_sales->Fetch())
             {
                $result[] = $ar_sales;
            }

            return $result;
       }
} //-- Вот тут


Но как-то странно, получается, если условие не выполняется, то функция возвращает ничего...
Возможно, скобка нужна в условии, но тогда нужно объявление $result= array(); выносить до условия и return после, в общем, поменять логику, что бы возвращала что-то понятное.
Ну и про статические функции Вам выше уже сказали. Так же, возможно, ошибка в другом месте, нужен дополнительный код до и после ошибки.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы