[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите исправить синтаксическую ошибку в коде
VIGuY
Доброго времени суток, уважаемые гуру....
Нужна помощь. В исходном коде синтаксическая ошибка
помогите исправить...

PHP
public function _jumpBlock( $p_len = NULL )
    {
        if ( is_resource( $this->_file ) )
        {
            if ( $p_len === NULL )
            {
                $p_len = 1;
            }
            if ( $this->_compress_type == "gz" )
            {
                @gzseek( $this->_file, gztell( $this->_file ) + $p_len * 512 );
                return TRUE;
            }
            if ( $this->_compress_type == "bz2" )
            {
                $i = 0;
                for ( ; do
 
{
 $i < $p_len; ++$i, )
                    {
                        $this->_readBlock( );
                        break;
                    }
                } while ( 1 );
            }
            else if ( $this->_compress_type == "none" )
            {
                @fseek( $this->_file, ftell( $this->_file ) + $p_len * 512 );
                return TRUE;
            }
            else
            
{
                $this->_error( "Unknown or missing compression type (".$this->_compress_type.")" );
            }
        }
        return TRUE;
    }


ошибка в строчке
for ( ; do



Спустя 35 минут, 46 секунд (25.07.2009 - 00:19) Gabriel написал(а):
я далеко не гуру и наверное именнп поетому немогу понять че там делает точкас запятой?

Спустя 2 минуты, 52 секунды (25.07.2009 - 00:22) Soldier Ghost написал(а):
Присоединяюсь к впопросу Gabriel точка с запятой как я знаю служит для какбы конца функции blink.gif

Спустя 5 минут, 55 секунд (25.07.2009 - 00:28) VIGuY написал(а):
я тоже так думаю...
но проблема ещё в скобочка
хаотично расположенных на промежутке

PHP
{
                $i = 0;
                for ( ; do
 
{
 $i < $p_len; ++$i, )
                    {
                        $this->_readBlock( );
                        break;
                    }
                } while ( 1 );
}


надо как то этот кусок наладить....
Такая ерунда возникла после дезенда....

Спустя 4 минуты, 32 секунды (25.07.2009 - 00:33) Gabriel написал(а):
PHP
{
                $i = 0;
                for ( do
 
{
 $i < $p_len; ++$i; )
                    {
                        $this->_readBlock( );
                        break;
                    }
                } while ( 1 );
}

так пробовал?
или ваше без do.

Спустя 5 минут, 16 секунд (25.07.2009 - 00:38) VIGuY написал(а):
пробывал... но.... тоже ошибочка на этой же строчке остаётся
как может
{
служить разделителем тут?
PHP
( do
 {
 
$i $p_len; ++$i; )


такого по моему быть не может....

Спустя 23 секунды (25.07.2009 - 00:38) twin написал(а):
Если не мудрить, а написать код, соблюдая какое нибудь подобие стиля, то можно легко увидеть косяк.
PHP
$i = 0;
                for ( ; do{ $i < $p_len; ++$i, )
                    {
                        $this->_readBlock( );
                        break;
                    }
                } while ( 1 );

Что значит сия странная конструкция?

Спустя 5 минут, 10 секунд (25.07.2009 - 00:43) VIGuY написал(а):
без понятия, к сожалению(
простит меня всевышний...
собрался занулить один движок
после работы дезендера
всегда возникают синтаксические ошибки
вот тут как раз этот случай
он чуток напутал со скобочками и точками с запятой....

весь косяк тут

PHP
{
                
$i 0;
                for ( ; do
 {
 
$i $p_len; ++$i, )
                    {
                        
$this->_readBlock( );
                        break;
                    }
                } while ( 
);
}


выше и ниже код адекватный....

Спустя 8 минут, 49 секунд (25.07.2009 - 00:52) twin написал(а):
Еще раз повторяю. Не надо писать как попало. Есть цикл for:

PHP
for ( ; do{ $i $p_len; ++$i, )
Всё, что в круглых скобках, это условия выполнения. Всё, что в фигурных - блок инструкций. Как можно начать блок инструкций, не определив условия? причем еще затолкав туда начало другого цикла.

Спустя 5 минут, 58 секунд (25.07.2009 - 00:58) VIGuY написал(а):
PHP
{
    $i = 0;
    ( $i < $p_len; ++$i, )
                    {
                        $this->_readBlock( );
                        break;
                    }
                 while ( 1 );
}


так?
теперь жалуется на строку
( $i < $p_len; ++$i, )

Спустя 10 минут, 26 секунд (25.07.2009 - 01:09) FatCat написал(а):
Цитата (VIGuY @ 25.07.2009 - 01:58)
( $i < $p_len; ++$i, )

Сделайте
PHP
for ( $i 0$i $p_len$i++; )

Ругаться скорее всего перестанет, но Вы об этом пожалеете. laugh.gif
Потому как далее пойдет
PHP
while ( );
и он без ругани поможет Вам узнать настройки пхп времени таймлимита. laugh.gif biggrin.gif laugh.gif

Идиотский топик. Из букв "ж", "о", "п" и "а" надо собрать слово "счастье".

Спустя 7 минут, 27 секунд (25.07.2009 - 01:16) VIGuY написал(а):
я понимаю ваши эмоции...
но.... не я писал эту гадость
и не автор.....
скрипт под зендом работает нормально
а после дезенда в этом месте кусок превращается в чёрти чё....
нет.... FatCat... и так не прокатило.....
за что может отвечать этот кусок кода, который в первом посте?

можно как то безболезненно выйти из данной ситуации?

Спустя 19 минут, 28 секунд (25.07.2009 - 01:36) VIGuY написал(а):
PHP
{
                unset( 
in_array$error_code$error_array )[array_search$error_code$error_array )] );
                
$deleted TRUE;
}


вот ещё одно проблематичное местечко...

Спустя 36 минут, 30 секунд (25.07.2009 - 02:12) kirik написал(а):
VIGuY
Что делает методы _jumpBlock и _readBlock? Просто нельзя сказать точно какой там должен быть цикл, пока не узнаешь зачем он там вообще.

Цитата (VIGuY @ 24.07.2009 - 17:36)
вот ещё одно проблематичное местечко...

та же самая фишка. На этом месте может быть написана тысяча и одна вариация кода, нужно разобраться что именно там должно происходить.

Спустя 7 часов, 5 минут, 32 секунды (25.07.2009 - 09:18) beginner написал(а):
Цитата (VIGuY @ 24.07.2009 - 22:36)
PHP
{
                unset( in_array( $error_code, $error_array )[array_search( $error_code, $error_array )] );
                $deleted = TRUE;
}


вот ещё одно проблематичное местечко...

Скорее всего тут $error_code - элемент массива
Значит я думаю, что тут нужно так:
PHP
{

$key=array_search($error_code$error_array );
// нашли или ключ массива или false

//дальше проверим т.к. ключ может быть и 0 и '0'

if (!($key===false)) {
    
    
// реально нашли ключ массива
    
unset($error_array[$key]);
    
$deleted TRUE;
    
}

in_array только проверит наличие элемента в массиве - ключ не
вернет, а для удаления нужен ключ

Спустя 1 час, 8 минут, 51 секунда (25.07.2009 - 10:26) Krevedko написал(а):
суровый код..с ооп )
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.