Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z operatorem błędu @
eMartio
post
Post #1





Grupa: Zablokowani
Postów: 46
Pomógł: 0
Dołączył: 12.01.2006

Ostrzeżenie: (10%)
X----


Mam problem z wytłumieniem komunikatu o błędzie operatorem błędu @. Otoż mam tak ustawioną obsługę błędów:

  1. <?php
  2. ini_set('error_reporting', E_ALL ^ E_NOTICE);
  3. ?>


Teraz uruchamiam plik test.php
  1. <?php
  2.  
  3. $my_file = @file('nieistniejący_plik');
  4.  
  5. ?>


Wszystko działa, błąd nie zostanie wyświetlony.

Jednak kiedy przekażę obsługę błędów własnej funkcji, błąd (ostrzeżenie wykonania: E_WARNING) zostaje wyświetlony:
  1. <?php
  2.  
  3. set_error_handler(array('Klasa', 'Metoda'), E_ALL ^ E_NOTICE);
  4.  
  5. ?>


Pomimo, że jest ustawiony taki sam poziom raportowania. Musiałbym dodać jeszcze ^ E_WARNING, ale nie chcę tego robić, gdyż niektóre ostrzeżenia muszą się pojawić, np. te nie wytłumione operatorem @.

Co muszę zrobić, aby nie pokazywał ostrzeżeń wytłumionych operatorem błędów? Używam php 5.1.2.

Proszę o pilną pomoc.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
hwao
post
Post #2


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




set_error_handler" title="Zobacz w manualu php" target="_manual()

Masz tutaj wytlumaczone to..
Go to the top of the page
+Quote Post
Martio
post
Post #3





Grupa: Zablokowani
Postów: 167
Pomógł: 2
Dołączył: 15.02.2004

Ostrzeżenie: (30%)
XX---


Cytat(hwao @ 2006-04-04 07:49:33)

Zaglądałem tam, ale nie za bardzo jestem za pan brat z angielskim. Może mi to ktoś wytłumaczyć i podać ew. rozwiązanie tego problemu?
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




  1. <?php
  2. function blad($errno, $errstr){
  3.  
  4. if(error_reporting() == 0) // error_reporting() = 0, so it was called with @ in front of it
  5. {
  6.  echo 'nic nie wyswietlam, gdyz byla malpa';
  7. }
  8. else
  9. {
  10. echo 'wyswietlam errora, gdyz nie bylo malpy:<br />'.$errstr;
  11. }
  12.  
  13. }
  14. set_error_handler('blad', E_ALL ^ E_NOTICE);
  15. @file('sdfsdf');
  16.  
  17. ?>


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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: 19.08.2025 - 21:25