Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Не работает cont++


Автор: DARKVovich 14.4.2011, 15:28
Почему-то в одном скрипте не работает увеличение переменной на единицу ($count)!

Вот код:

Код

if(!isset($format))
    $format='{a}<b>{text}</b></a>';
if(!empty($menuid))
{
    $menu=$Mainclass->Cache->Get('line_menu_'.$menuid.'_'.$Mainclass->lang_name,false);
    if($menu===false)
    {
        $menu=array();
        $Mainclass->Db->Query('SELECT `id`,`title`,`descr`,`url`,`eval_url`,`params` FROM `prefix_menu` INNER JOIN `prefix_menu_l` USING(`id`) WHERE `language` IN (\'\',\''.$Mainclass->lang_name.'\') AND `status` AND `parent`='.(int)$menuid.' ORDER BY `pos` ASC',__file__,__line__);
        while($arr=$Mainclass->Db->Fetch_assoc())
            $menu[]=$arr;
        $Mainclass->Cache->Put('line_menu_'.$menuid.'_'.$Mainclass->lang_name,$menu,3600,false);
    }
    $count=1;
    foreach($menu as &$v)
    {
        $Mainclass->Url->ending=$Mainclass->vars['url_static_ending'];
        $url=$v['eval_url'] ? @eval('return '.$v['eval_url']) : $v['url'];
        if ($count=1) {
            $content.=str_replace(array('{a}','{text}'),array('<a href="'.$url.'"'.($url==$_SERVER['QUERY_STRING'] ? ' class="active"' : '').($v['descr'] ? ' title="'.htmlspecialchars(strip_tags($v['descr']),ENT_QUOTES).'"' : '').($v['params'] ? ' '.$v['params'] : '').'>',$v['title']),$format).(int)$count++;
        } else {
            $content.=str_replace(array('{a}','{text}'),array(' | <a href="'.$url.'"'.($url==$_SERVER['QUERY_STRING'] ? ' class="active"' : '').($v['descr'] ? ' title="'.htmlspecialchars(strip_tags($v['descr']),ENT_QUOTES).'"' : '').($v['params'] ? ' '.$v['params'] : '').'>',$v['title']),$format).(int)$count++;
        }
    }
}


В чем может быть причина? Я пробовал перемещать каунт в начало скрипта, писать для форича $count=$count++; - всегда выводит 1 =(

Автор: SneG0K 14.4.2011, 15:52
Цитата(DARKVovich @  14.4.2011,  14:28 Найти цитируемый пост)
Почему-то в одном скрипте не работает увеличение переменной на единицу ($count)!

Печально...

Вы про пост и пре инкремент слышали?

Ну и ###код...

Автор: Muerto 14.4.2011, 15:59
Протестируй вот этот код сразу все ясно станет
Код

$count = 0;
echo 'before: ' . $count++;
echo '<br />';
echo 'after: ' . $count;
$count = 0;
echo 'before: ' . ++$count;
echo '<br />';
echo 'after: ' . $count;

Ясно станет как оно работает...

Автор: DARKVovich 14.4.2011, 16:06
Цитата(SneG0K @ 14.4.2011,  15:52)
Цитата(DARKVovich @  14.4.2011,  14:28 Найти цитируемый пост)
Почему-то в одном скрипте не работает увеличение переменной на единицу ($count)!

Печально...

Вы про пост и пре инкремент слышали?

Ну и ###код...

Нет, не слышал. Подскажите как изменить код? Я новичок в пхп.

PS. это код блока меню из CMSки.


Автор: patap 14.4.2011, 16:20
строка 19, не о чем не говорит?
Код

if ($count=1) {


Автор: DARKVovich 14.4.2011, 17:17
Всем спасибо! Разобрался.

Автор: SneG0K 14.4.2011, 18:53
Цитата(DARKVovich @  14.4.2011,  15:06 Найти цитируемый пост)
PS. это код блока меню из CMSки.

Простите, а из какой?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)