Автор Тема: К вопросу отладки...  (Прочитано 2546 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Domino

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 4
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
К вопросу отладки...
« : 01 Октября 2004, 00:53:22 »
Вопрос: могу я каким то образом вместо своих warnings сделанных с помощью echo \'не заполненно поле ...\' вызывать на экран инфу о состоянии в котором находится транслятор, файл строка или функция, в которой он находится или что-то подобное?, просто сейчас когда там несколько тысяч строк, ловить эти глюки и предупреждения тяжело...а когда начинал все писать особо не думал. Еще луше бы возможность выводить на экран состояние полей класса, но это уже совсем рай будет...

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
К вопросу отладки...
« Ответ #1 : 01 Октября 2004, 01:53:13 »
а теперь еще раз:
1. что у тебя уже есть ? (как выглядит код и что он делает)
2. что ты хочешь получить ?
3. знаком с http://ua.php.net/manual/ru/ref.errorfunc.php ?
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Domino

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 4
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
К вопросу отладки...
« Ответ #2 : 01 Октября 2004, 21:17:25 »
Как выглядит код показать не могу(там много да и вопрос скорее теоретический), ну вот например часть:


function resort($id,$newsort)
	
{
    
	
$oldsort=$this->get_sort_by_id($id);
        if(
$oldsort==$newsort)
        
	
{
        
	
	
$this->message(1,\'Новый порядковый номер равен старому\');
                return;
        
	
}
	
	
if($newsort<0 || $newsort>$this->get_last_sort())
        
	
{
                $this->message(1,\'Неверный номер\');

                return;
            }
        //Меняем местами номера новый меньше старого
        if($newsort<$oldsort)
        
	
{
                @ $db=mysql_pconnect($this->dbservername,$this->dbusername,$this->dbuserpass);
	
	
	
	
if(!$db) $this->message(2,\'Ошибка конекта\');
	
   
	
	
	
mysql_select_db($this->dbname);


                $query="update ".$this->table." set sort=sort+1 where sort>\'".$newsort."\' or sort=\'".$newsort."\'";
            
	
$result=mysql_query($query);
                if($result)
                {


	
	
	
	
$query="update ".$this->table." set sort=\'".$newsort."\' where id=\'".$id."\'";
	
	
	
	
$result=mysql_query($query);
                
	
if($result)
                    
	
{
                            $this->message(0,\'Пересортировка завершена\');

                            return;
                        }
	
	
	
	
	
else
                    
	
{
                        $this->message(2,\'Произошли ошибки при втором запросе\');

                        return;
                        }
                }
                else
                {
                
	
$this->message(2,\'Произошли ошибки при первом запросе\');
                    return;
                }
            }
	
	
//Меняем местами номера новый больше старого
        if($newsort>$oldsort)
        {
                @ $db=mysql_pconnect($this->dbservername,$this->dbusername,$this->dbuserpass);
	
	
	
	
if(!$db) $this->message(2,\'Ошибка конекта\');
	
   
	
	
	
mysql_select_db($this->dbname);

                $query="update ".$this->table." set sort=sort-1 where sort>\'".$oldsort."\' or sort=\'".$oldsort."\'";
	
	
	
	
$result=mysql_query($query);
                if($result)
                {
                    $query="update ".$this->table." set sort=\'".$newsort."\' where id=\'".$id."\'";
	
	
	
	
	
$result=mysql_query($query);
                        if($result)
                    
	
{
                        
	
$this->message(0,\'Пересортировка завершена\');
                            return;
                        }
	
	
	
	
	
	
else
                    
	
{
                        
	
$this->message(2,\'Произошли ошибки при втором запросе\');
                        
	
return;
                        }


                }
                else
                {
                    $this->message(2,\'Произошли ошибки при первом запросе\');
                    return;
                }

        }


	
}



Как видно из кода там есть много предупреждений, которые выводятся на экран, так вот могу ли я вмсето предупреждений(мной написанных echo произошли ошибки итд) получить информацию о состоянии переменных в данный момент. У меня там куча классов и у них куча полей и порой очень трудно понять, из-за чего именно та или иная функция сработала не так, то есть вместо моих Эхо хотелось бы в ыводить в них на экран метаданные о состоянии переменных, в какой строке транслятор итп...что то вроде трассировки?.Руками это писать в данный момент не реально, хотя в следующий раз буду умней...

p/s/ Приведенный листниг можете не кретиковать, у меня идет изучение этого языка по варианту XP стоит задача и надо сделать, а красиво или нет, криво или нет меня сейчас мало волнует...

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
К вопросу отладки...
« Ответ #3 : 02 Октября 2004, 14:04:17 »
зависит от того, какие переменные тебе нужны ($_POST, $_GET и тому подобные - можешь, переменные класса - тоже можешь).
Насчет того в какой строке - смотри функции по ссылке, которую я дал  выше
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28