[Yinelenen] kod yazarken '@' kullanarak herhangi bir sorun var mı

5 Cevap php

Possible Duplicate:
Reference - What does this symbol mean in PHP?

Kod yazarken '@' kullanarak herhangi bir sorun var mı? ve arkasındaki mekanizma nedir?

5 Cevap

O yüzden bir little zor hata ayıklama yapar sanırım hata raporlamayı bastırır ;-)

@ 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

Ne hakkında bilmeniz gereken hataları bastırır, ama ne olursa olsun herhangi bir hata karşılaştı olsun kodunuzu yavaşlatır kalmaz. @ Geçici olarak geri önceki ayara sonra, 0 hata raporlama için ayarı ini php ayarlayarak çalışır.

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.