Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> funkcja obsługująca błędy
Szczav
post
Post #1





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 5.09.2002
Skąd: Gliwice/Radomsko/Szczepocice

Ostrzeżenie: (0%)
-----


Stworzyłem funkcję obsługującą błędy. Przekazuję ją do set_error_handler() i jest ok, ale kiedy zrobiłem z niej konstruktor w klasie przy jej wywołaniu wyskakuje mi błąd o braku parametrów.

[php:1:6ec379e474]<?php
class error
{
var $error_name;
var $error_msg;
var $error_file;
var $error_line;

function error($error_name, $error_msg, $error_file, $error_line)
{
//prints error information
print("<br><center><table bgcolor="#B1B1B1" border="0" width="100%"><tr><td><b>BŁĄD:</b> ".$error_msg);
print("<br><br>Proszę spróbować ponownie lub skontaktować się z administratorem.");
print("<br>Lokalizacja błędu: linia ".$error_line.", plik ".$error_file);

//if error is fatal stops all script and shows information
if($error_name == E_USER_ERROR || $error_name == E_ERROR)
{
print("<br><br>Błąd krytyczny, zakończenie programu.</td></tr></table></center>");
exit;
}

print("</td></tr></table></center><br>");
}
}


new error;
set_error_handler("error");
?>[/php:1:6ec379e474]
Go to the top of the page
+Quote Post
Grzesiek
post
Post #2





Grupa: Zarejestrowani
Postów: 96
Pomógł: 3
Dołączył: 15.04.2003
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Czy przypadkiem na dole nie powinno być
[php:1:4103e68539]<?php
$err = new error;
$err->set_error_handler("error");

?>[/php:1:4103e68539]


--------------------
Linux is like wigwam, no windows, no gates and an apache inside.
Mój blog łebmasterski (po angielsku) Web Development Blog.
Go to the top of the page
+Quote Post
bamboos
post
Post #3





Grupa: Zarejestrowani
Postów: 115
Pomógł: 0
Dołączył: 3.05.2003
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Witam!!
bo konstruktor wymaga podania argumentow:
new error($arg1, $arg2, $arg3, $arg4); ...


--------------------
Go to the top of the page
+Quote Post
Szczav
post
Post #4





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 5.09.2002
Skąd: Gliwice/Radomsko/Szczepocice

Ostrzeżenie: (0%)
-----


Cytat
Czy przypadkiem na dole nie powinno być
[php:1:7f915850ce]<?php
$err = new error;
$err->set_error_handler("error");

?>[/php:1:7f915850ce]


Nie, bo wtedy musiałaby być utworzona operacja set_error_handler w klasie, a ty chodzi o to żeby utworzona przeze mnie klasa została ustawiona jako domyślna do osbsługi błędów.

Argumentów w tej funkcji nie trzeba podawać, php samo je wstawia, jeśli w kodzie wystąpią błędy. Gdybym z tej operacji zrobił funkcję 'error' i napisał set_error_handler("error"); bez argumentów byłoby ok. Problem w tym że chce żeby to była klasa nie funkcja.
Go to the top of the page
+Quote Post
KaMeLeOn
post
Post #5





Grupa: Zarejestrowani
Postów: 680
Pomógł: 0
Dołączył: 1.10.2002
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Mylisz chyba pojęcia...
Jeśli konstruktor ma podane argumenty, to muszą być podane i nie ma na to rady - chyba, że podasz domyślne wartości...
Zresztą konstruktor w takiej formie to jedna wielka pomyłka, a zwłaszcza wypisywanie czegokolwiek na ekran.


--------------------
"Czerp z innych, ale nie kopiuj ich. Bądź sobą." Michel Quoist
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 07:10