Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Не работает стандартная php функция определения глобального массива в коде компонента и шаблона компонента

00 голосов
8
Не работает стандартная php функция определения глобального массива в коде компонента и шаблона компонента.
как заставить там работать глобальную переменную
спросил 17 Июнь, 13 от Amentet (2,080 баллов)

8 Ответы

00 голосов
Пример неработающего кода покажите.
ответил 17 Июнь, 13 от Pomnep (13,960 баллов)
00 голосов
Код
$zz=0;
$cc=0;

//функция сортировки
function FCmp()
{ 
//global $zz;
$GLOBALS["zz"]++;
//$zz++;
}
FCmp();
echo $zz;


// Comparison function
function cmp($a, $b) {
global $cc;
$cc++;
    if ($a == $b) {
     return 0;
    }
    return ($a < $b) ? -1 : 1;
}

// Array to be sorted
$array = array('a' => 4, 'b' => 8, 'c' => -1, 'd' => -9, 'e' => 2, 'f' => 5, 'g' => 3, 'h' => -4);

// Sort and print the resulting array
uasort($array, 'cmp');
echo "\\".$cc;
Если вставить этот код на страницу он работает. Если вставить его в шаблон компонента или код компонента (я вставлял в шаблон комплексного компонента bitrix:catalog) то не работает- выводит 0
ответил 04 Июль, 13 от Amentet (2,080 баллов)
00 голосов
Если включено кеширование - немудрено.
ответил 07 Окт, 13 от Pomnep (13,960 баллов)
00 голосов
Кеширование выключено. Снял сразу же
ответил 07 Янв, 14 от Amentet (2,080 баллов)
00 голосов
До вызова Вы их инициализируете?
ответил 24 Апр, 14 от Pomnep (13,960 баллов)
00 голосов
Код
$zz=0;
$cc=0;
Это можно считать за инициализацию(в php на сколько я знаю объявлять тип не обязательно)?
ответил 18 Авг, 14 от Amentet (2,080 баллов)
00 голосов
Цитата
Сергей Фролов пишет:
Это можно считать за инициализацию(в php на сколько я знаю объявлять тип не обязательно)?
Если этот код у Вас в компоненте, то это инициализация ЛОКАЛЬНЫХ переменных. А что за задачу Вы решаете такой кувалдой, как сортировка глобальных переменных?
ответил 24 Дек, 14 от Pomnep (13,960 баллов)
00 голосов
Цитата
А что за задачу Вы решаете такой кувалдой, как сортировка глобальных переменных?

Это тестовый код рабочий у меня другой.
А решаю я следующее: Нужно сделать сортировку в разделах чтобы была первичная сортировка по подразделам и вторичная сортировка по алфавиту(что стандартно не реализуется). Если бы в методе ciblockelement:getlist можно было бы применять свою функцию сортировки то гемороя бы не возникло.
Цитата
Если этот код у Вас в компоненте, то это инициализация ЛОКАЛЬНЫХ переменных.
Если это инициализация локальных переменных то получается мне нужно инициализировать на странице а не в компоненте?
ответил 13 Апр, 15 от Amentet (2,080 баллов)

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

0 голосов
0 ответов
0 голосов
1 ответ
спросил 21 Фев, 14 от root (25,590 баллов)