Sc0undRel
@Sc0undRel

Почему переменная меняет значения?

Допиливаю модуль для Datalife 9.5. Файл целиком можно глянуть здесь: pastebin.ru/L4s8JMkW
Почему переменные в массиве $catlist при первом выводе отличаются от тех, что при втором выводе?

В первом print_r($cat_list); содержатся реально правильные данные, а при втором выводе появляются какие-то непонятные 2 значения..

Я ведь никак не меняю значение $cat_list в первом if.. так почему втором if он уже принимает другое значение?

if( preg_match( "#category=['\"](.+?)['\"]#i", $param_str, $match ) ) {

        if($match[1]=="topcategory") {
            $array_main=$cat_list;
            print_r($cat_list);
        }

        if($match[1]=="topstudio") {
            $array_topstudio=$cat_list;
             print_r($cat_list); 
        }
...........
}


Array
(
[0] => 4
[1] => 260
[2] => 268
[3] => 278
[4] => 181
)
Array
(
[0] => 4
[1] => 260
[2] => 273
[3] => 265
[4] => 62
)


===============================
Если переписать код вот так, то print_r также выведет 2 массиве с такими же, как выше значениями.
При открытии страницы у меня дважды выполняется условие preg_match ... в каком месте наложение идёт.. не могу понять где...
if( preg_match( "#category=['\"](.+?)['\"]#i", $param_str, $match ) ) {
print_r($cat_list);
        if($match[1]=="topcategory") {
            $array_main=$cat_list;
        }
        if($match[1]=="topstudio") {
            $array_topstudio=$cat_list;
        }
...........
}


=================
ПРОБЛЕМА РЕШЕНА МЕТОДОМ ТЫКА!
  • Вопрос задан
  • 147 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

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