2010-10-21 23 views
22

Temel olarak, @ işlevlerini kullanmadan önce her işlevin değil, file_get_contents(), mysql_connect() ve benzeri gibi bir genişleme işlevinin kullanıldığını gördüm.PHP fonksiyonları ve fonksiyonları

Ve evet, soru şudur: İşlev çağrılarından önce bu @ s hangi amaçla vardır?

Veya başka bir deyişle, @file_get_contents() ve file_get_contents() arasındaki fark nedir?

+1

bakınız [? Referans - bu sembol PHP'de ne demek] (http://stackoverflow.com/questions/3737139/reference-what-does-this-symbol-mean -in-php) ait – Gordon

+0

olası yinelenen [@ PHP ne anlama gelir?] (http://stackoverflow.com/questions/3621215/what-does-mean-in-php) sana gelen anlıyorsunuz umut – Gordon

cevap

33

@ bir error control operator'dir. Temelde hataları bastırıyor.

+5

@Tom Bu açıklama, bu sembolün asla kullanılmaması gerektiği anlamına gelir. –

+0

@Col. Şarapnel Ofcourse! Her hatayla her zaman ilgilenirim, en azından düzeltecek bir şey var. – jolt

1

bir fonksiyonu önünde @ sembol işlevi çağrıldığında görüntülenmesini hataları engellemektedir.

+0

http://php.net/manual/en/book.errorfunc.php – Ted

2

@function iken normal bir işlev çağrısı, kendi seçimine HTML çıkışını hata mesajlarını göstermez.

+0

Bunun nedenini merak ettiniz. – fabrik

+0

nedir? Anlamıyorum – SkypeMeSM

+0

@fabrik sizinkiyle aynı nedenden. Ama seninki belirsizken (sadece "çıktı"), bu temiz bir şekilde HTML çıktısını belirtir, ki bu elbette bir saçmalıktır. Hata kontrolünün program çıktısı ile ilgisi yoktur. –

0

@ İşlevlerin önünde kullanılan benzer bir şüphe var. Bundan kaçınmak için fonksiyon çağrısından önce bazı doğrulama yaptım. Benim örnektir:

if (is_file($filename)) $timestamp = filemtime($filename);