Possible Duplicate:
Reference - What does this symbol mean in PHP?
Kod yazarken '@' kullanarak herhangi bir sorun var mı? ve arkasındaki mekanizma nedir?
Possible Duplicate:
Reference - What does this symbol mean in PHP?
Kod yazarken '@' kullanarak herhangi bir sorun var mı? ve arkasındaki mekanizma nedir?
@ operator PHP bir hata kontrol operatörü olduğunu. Bu öncesinde herhangi bir ifade için hataları bastırır.
Sadece bariz sorun debug kod daha zor hale olmasıdır.
EDIT: bir yorumcu istedi yana ... Bu, aslında var olmayan olabilecek bir değişken yararlanmak isteyen durumlarda oldukça yararlıdır - Böyle bir $ _GET veya $ _POST değişkeni olarak.
if (isset($_GET['hello'] && $_GET['hello'] == "yes") {} // without @
if (@$_GET['hello'] == "yes") {} // with @
Bazı php işlevleri de hataları atmak hem de bu durumlarda hatayı bastırmak yerine bir deneyin ve yakalamak dönüş değerini kontrol etmek isteyebilirsiniz böylece yanlış dönen.
Eğer güvenle yok sayabilirsiniz bir hata tetikleyen bir harici kitaplık kullanıyorsanız yararlı olabilir. Eğer bunu nispeten gereksiz hatayı bastırmak için @ operatörünü kullanabilirsiniz bir işlevden dönüş değeri dayalı başarısız anlamak eğer basit bir örnek, harici bir servise bağlanmak için başarısız olduğunda bir hata tetikleyen bir kütüphane olacaktı.
Sadece bildiğiniz kod üzerinde "işleri" kullanabilirsiniz ama ilgilendiğiniz değilsin tek hata atabilir, çalışmak için hiçbir hata varsa o hata ayıklama kodu oldukça zor yapar gibi olsa kodlama yaparken onu kullanmak asla
HERHANGİ bağlamda @ kullanarak kötü bir fikirdir. Bazı değişkeni değerlendirmek neredeyse ok
$x = @ $somearray[$somethingelse]; # suppress E_NOTICE if array key is absent
Ama başka bir bağlamda kesinlikle korkunç. Kötü etkisi "@" ile bir fonksiyon çağırıyor - tüm fonksiyon ve kendi altyordamlar sonra hata özürlü rapor ile idam olurdu. Bu herhangi bir ölümcül istisna oldu, bir ipucu ya da ne olmazdı.
Korkunç tutmadan PHP hatası. Ama @ kullanarak kötüdür.
Ne yazık ki hayır, sadece bazıları (örneğin sadece E_NOTICE ve E_WARN) bastırmak için operatör ve diğerlerini yoktur.