Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> PHP

PHP में @ सिंबल का उपयोग क्या है?


PHP में @ सिंबल (एरर कंट्रोल ऑपरेटर)

PHP **एरर कंट्रोल ऑपरेटर** यानी एट साइन (@**) का समर्थन करता है। जब @ को किसी एक्सप्रेशन से पहले लगाया जाता है, तो उस एक्सप्रेशन द्वारा उत्पन्न होने वाली कोई भी त्रुटि संदेश (नोटिस, वार्निंग, फैटल एरर नहीं) **नजरअंदाज** कर दिए जाते हैं।

उदाहरण 1: फाइल ऑपरेशन पर त्रुटि दबाना

<?php
$file = @file('non_existent_file') or
    die("फाइल खोलने में विफल: त्रुटि संदेश = '$err'");
$value = @$cache[$key];
?>

आउटपुट

फाइल खोलने में विफल: त्रुटि संदेश = ''
PHP Notice: Undefined variable: err in ... on line 4

उदाहरण 2: अपरिभाषित एरे इंडेक्स

<?php
// बिना @ - नोटिस उत्पन्न करता है
$val = $test['5'];

// साथ @ - नोटिस दबाया गया
$val = @$test['5'];
?>

महत्वपूर्ण चेतावनियाँ

  • फैटल एरर्स नहीं पकड़े जाते: @ पार्स एरर्स, फैटल एरर्स, या E_ERROR को नहीं रोकता।
  • प्रदर्शन प्रभाव: @ प्रत्येक उपयोग पर आंतरिक एरर हैंडलर को कॉल करता है - तंग लूप्स में उपयोग न करें।
  • डीबगिंग कठिन: चुपचाप त्रुटियों को छुपाता है, बग्स खोजना मुश्किल बनाता है।
  • कस्टम एरर हैंडलर: यदि कस्टम एरर हैंडलर सेट है (`set_error_handler`), तो यह अभी भी कॉल किया जाता है, लेकिन `error_reporting()` 0 लौटाएगा।

सर्वोत्तम प्रथाएं

  • कम से कम उपयोग करें - केवल उन ऑपरेशन्स के लिए जहां त्रुटि अपेक्षित और हानिरहित है (जैसे वैकल्पिक फ़ाइल पढ़ना, कैश लुकअप)।
  • बेहतर विकल्प:
    • isset($arr['key']) या array_key_exists() एरे इंडेक्स के लिए।
    • file_exists() या is_readable() फाइल ऑपरेशन्स से पहले।
    • उचित त्रुटि हैंडलिंग के साथ try/catch (थ्रोएबल्स के लिए)।
  • कभी भी @ का उपयोग न करें डेटाबेस क्वेरीज़, API कॉल्स, या महत्वपूर्ण ऑपरेशन्स पर।
  1. - C# में 'using' स्टेटमेंट का उपयोग

    C# में using स्टेटमेंट: रिसोर्स मैनेजमेंट using स्टेटमेंट IDisposable इंटरफेस इम्प्लीमेंट करने वाले ऑब्जेक्ट्स के जीवनचक्र को स्वचालित रूप से प्रबंधित करता है। यह सुनिश्चित करता है कि Dispose() मेथड कॉल हो, भले ही एक्सेप्शन 발생 हो। सिंटैक्स using (ResourceType resource = new ResourceType()) { //

  1. - मुझे AppleGFXHDADriver त्रुटि आ रही है, क्या करें?

    जब आपका मैक बिना किसी कारण के पुनरारंभ होता है तो यह खतरनाक हो सकता है क्योंकि इसका मतलब है कि कहीं कुछ गड़बड़ है। लेकिन क्या डरावना है जब आपका मैक रीबूट करना जारी रखता है और लगता है कि लूप में फंस गया है। इसे कर्नेल पैनिक कहा जाता है। जब कर्नेल पैनिक होता है, तो इसका मतलब है कि ऑपरेटिंग सिस्टम को

  1. - HP सर्विस त्रुटि 79: कारण, लक्षण, और कैसे ठीक करें

    Windows और macOS दोनों उपयोगकर्ताओं ने HP Hewlett Packard प्रिंटर डिवाइस के माध्यम से प्रिंट कार्य पूरा करने का प्रयास करते समय होने वाली कई समस्याओं की सूचना दी है। व्यापक विश्लेषण के आधार पर, समस्या बिल्ड की परवाह किए बिना दोनों ऑपरेटिंग सिस्टम प्लेटफॉर्म पर होती है। HP एक व्यापक रूप से उपयोग किय