Forum Webscript.Ru

Программирование => PHP => Тема начата: Domino от 01 Октября 2004, 00:53:22

Название: К вопросу отладки...
Отправлено: Domino от 01 Октября 2004, 00:53:22
Вопрос: могу я каким то образом вместо своих warnings сделанных с помощью echo \'не заполненно поле ...\' вызывать на экран инфу о состоянии в котором находится транслятор, файл строка или функция, в которой он находится или что-то подобное?, просто сейчас когда там несколько тысяч строк, ловить эти глюки и предупреждения тяжело...а когда начинал все писать особо не думал. Еще луше бы возможность выводить на экран состояние полей класса, но это уже совсем рай будет...
Название: К вопросу отладки...
Отправлено: Макс от 01 Октября 2004, 01:53:13
а теперь еще раз:
1. что у тебя уже есть ? (как выглядит код и что он делает)
2. что ты хочешь получить ?
3. знаком с http://ua.php.net/manual/ru/ref.errorfunc.php ?
Название: К вопросу отладки...
Отправлено: Domino от 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 стоит задача и надо сделать, а красиво или нет, криво или нет меня сейчас мало волнует...
Название: К вопросу отладки...
Отправлено: Макс от 02 Октября 2004, 14:04:17
зависит от того, какие переменные тебе нужны ($_POST, $_GET и тому подобные - можешь, переменные класса - тоже можешь).
Насчет того в какой строке - смотри функции по ссылке, которую я дал  выше