Birçok fonksiyonu (de çoğu gerçekten) tüm sinirlenip ve onların girdi hakkında bir şey sevmiyorum zaman uyarılar ve bildirimler atmak PHP dili vardır - onlar yapmak olsa (yerine sadece FALSE dönen çok .)
Bu gerçekten ortak bir yerde GD ve string fonksiyonları bulunmaktadır. Onlar kendi argümanları hakkında çok özel olan ve kullanıcı girişi kendi standartlarını karşılamak başarısız için gerçekten çok kolay.
Örneğin, bir kullanıcı bozuk (bilerek veya bilmeyerek) bir görüntü yükler. GD kütüphanesi gelen uyarılara sonuçlanır.
Bugüne kadar bu konuda PHP susturmak için bulduk sadece üç yolu vardır:
- Ini veya at runtime içinde hata raporlama ayarını değiştirin (yuck).
- Yavaş
@sembolü ile hataları bastırır. - Fonksiyonundan sonra / önce sağ raporlama hatası değiştirin:
şöyle:
$errorlevel=error_reporting();
error_reporting($errorlevel & ~E_NOTICE);
//...code that generates notices
error_reporting($errorlevel);
Doğal olarak, ikinci iki seçenek sadece beni hasta ediyor. Hangi 1) kullanılarak ve PHP hata ayarlarını aşağı tonlama beni bırakır. Ancak, ben çalışıyorum ederken ben mantık hataları ve benim koduna sürünme olabilir kötü formunu yakalamak böylece PHP sıkı modunda olmak istiyorum. Ancak, PHP bir şey gibi değil zaman rasgele hataları atılan olmasını istemiyorum.
So is there any way to separate errors that are from malformed arguments (bad input) from errors that are from bad programming? Örneğin:
- Bir kullanıcı resmi geçersiz ise, sadece YANLIŞ dönmek ve onunla ilgilenirim. Ben uyarıları ihtiyacım yok.
- Baskı işlevine bir görüntü kaynağın benim geçen geçersiz atış uyarıları ise.