อะไรคือความแตกต่างระหว่างการเรียกใช้ฟังก์ชันทั้งสองนี้ใน PHP?
init_get($somevariable);
@init_get($somevariable);
อะไรคือความแตกต่างระหว่างการเรียกใช้ฟังก์ชันทั้งสองนี้ใน PHP?
init_get($somevariable);
@init_get($somevariable);
คำตอบ:
"@" จะปิดเสียงข้อผิดพลาด php ที่ฟังก์ชันของคุณอาจเพิ่มขึ้น
@
หน้าtrigger_error
ฟังก์ชันของ PHP ล่ะ? ฉันได้เห็นสิ่งนั้นในบางรหัส แต่พฤติกรรมของมันไม่สอดคล้องกันสำหรับฉันจนถึงตอนนี้ ในบางกรณีฉันเห็นข้อผิดพลาดถูกรายงานโดยตัวจัดการข้อผิดพลาดที่กำหนดค่าไว้และในกรณีอื่น ๆ ดูเหมือนว่าจะได้รับการรายงาน
@
จะตั้งชั่วคราวerror_reporting
ให้เป็น 0 แต่จะไม่ "ปราบ" ข้อผิดพลาด
ตามที่ตอบไปแล้ว@
จะหยุดข้อผิดพลาด (ถ้ามี) ไม่ให้แสดงขึ้น
ในแง่ของประสิทธิภาพนี้ไม่แนะนำ
สิ่งที่ php กำลังทำคือ:
หากคุณไม่ต้องการให้มีข้อผิดพลาดใด ๆ แสดงขึ้นมาใช้ error_reporting(0);
ที่แสดงให้เห็นถึงการใช้งาน
หรือแค่เขียนโค้ด bug free: P
http://www.faqts.com/knowledge_base/view.phtml/aid/18068/fid/38
คุณสามารถเรียกนิพจน์ PHP ทั้งหมดด้วยคำนำหน้า "@" ซึ่งจะปิดการรายงานข้อผิดพลาดสำหรับนิพจน์นั้น ๆ
อย่างที่ทุกคนกล่าวมันจะหยุดผลลัพธ์ของข้อผิดพลาดสำหรับฟังก์ชันนั้น อย่างไรก็ตามสิ่งนี้จะลดประสิทธิภาพลงอย่างมากเนื่องจากต้องเปลี่ยนการตั้งค่าการแสดงข้อผิดพลาดสองครั้ง ฉันขอแนะนำว่าอย่าเพิกเฉยต่อคำเตือนหรือข้อผิดพลาดและแก้ไขโค้ดแทน