m0Hze
13.12.2009, 20:05
И так допустим,имеем некий код,оформленный в виде класса.Пускай вот так:
class NameClass{
function GetError(){
$line = __line__;
$file = __file__;
echo 'Error in file:'.$file.' line:' .$line;
}
function foo(){
$error = false;
if(!$error){
$this->GetError();
}
}
[test.php]
include('class.php');
$cl = new NameClass;
$cl->foo();
Собственно,мы нарочно вызываем сообщение об ошибке,с помощью ф-ции $this->GetError.
Но,в сообщении об ошибке,будет фигурировать не стока с ошибкой,а строчка,в которой была объявлена переменная $line.ТОже самое с $file;
так же была ипробована debug_backtrace();, но ее не очень удобно использовать,ибо вызывать прихоить непосредственно в методе $this->foo(), если вызов делать в $this->GetError - тотже результат что и с первым кодом,только будет фигурировать строка и файл,те,где была объявлена $this->foo().
Собственно вопрос,какими еще способами можно заставить корректно выводить строку и файл в ошибке,если это делать из соседнего файла,да к томже с вложенными функциями.Я уже пробывал даже адрес передавать заместо &__line__, .Собственно хочу услышать мнения экспертов.Да,главное,нельз передавать эти данные(линию,и файл) непосредственно при вызове нужной мне функции,тут $this->foo(), все должно быть уже внутри класса.
class NameClass{
function GetError(){
$line = __line__;
$file = __file__;
echo 'Error in file:'.$file.' line:' .$line;
}
function foo(){
$error = false;
if(!$error){
$this->GetError();
}
}
[test.php]
include('class.php');
$cl = new NameClass;
$cl->foo();
Собственно,мы нарочно вызываем сообщение об ошибке,с помощью ф-ции $this->GetError.
Но,в сообщении об ошибке,будет фигурировать не стока с ошибкой,а строчка,в которой была объявлена переменная $line.ТОже самое с $file;
так же была ипробована debug_backtrace();, но ее не очень удобно использовать,ибо вызывать прихоить непосредственно в методе $this->foo(), если вызов делать в $this->GetError - тотже результат что и с первым кодом,только будет фигурировать строка и файл,те,где была объявлена $this->foo().
Собственно вопрос,какими еще способами можно заставить корректно выводить строку и файл в ошибке,если это делать из соседнего файла,да к томже с вложенными функциями.Я уже пробывал даже адрес передавать заместо &__line__, .Собственно хочу услышать мнения экспертов.Да,главное,нельз передавать эти данные(линию,и файл) непосредственно при вызове нужной мне функции,тут $this->foo(), все должно быть уже внутри класса.