यदि आप एक वैरिएबल को अनसेट करना चाहते हैं तो आप बस उपयोग कर सकते हैं unset
unset($any_variable);
एक चर को परेशान करने की कोशिश करने पर इसके अस्तित्व की जाँच करने से कोई लाभ नहीं होता है।
यदि चर एक सरणी है और आप एक तत्व को खोलना चाहते हैं, तो आपको यह सुनिश्चित करना चाहिए कि माता-पिता पहले मौजूद हैं, यह ऑब्जेक्ट गुणों के लिए भी जाता है।
unset($undefined_array['undefined_element_key']);
unset($undefined_object->undefined_prop_name);
यह unsetएक if(isset($var)){ ... }ब्लॉक में लपेटकर आसानी से हल किया जाता है।
if(isset($undefined_array)){
unset($undefined_array['undefined_element_key']);
}
if(isset($undefined_object)){
unset($undefined_object->undefined_prop_name);
}
कारण हम केवल चर ( माता-पिता ) की जांच करते हैं, क्योंकि हमें संपत्ति / तत्व की जांच करने की आवश्यकता नहीं है और ऐसा करने से लिखने और गणना करने के लिए बहुत धीमा हो जाएगा क्योंकि यह एक अतिरिक्त जांच जोड़ देगा।
if(isset($array)){
...
}
if(isset($object)){
...
}
.vs
$object->prop_name = null;
$array['element_key'] = null;
if(isset($array) && array_key_exists('element_key', $array)){
...
}
if(isset($object) && property_exists($object, 'prop_name')){
...
}
if(isset($array) && $array['element_key'])){
...
}
if(isset($object) && $object->prop_name)){
...
}
यह बिना कहे चला जाता है, लेकिन यह भी महत्वपूर्ण है कि आप typeकिसी तत्व या संपत्ति को प्राप्त करने, स्थापित करने और परेशान करने के दौरान चर के बारे में जानते हैं; गलत सिंटैक्स का उपयोग करने से त्रुटि होगी।
एक ही है जब एक बहुआयामी सरणी या वस्तु के मूल्य को परेशान करने की कोशिश कर रहा है। आपको यह सुनिश्चित करना चाहिए कि मूल कुंजी / नाम मौजूद है।
if(isset($variable['undefined_key'])){
unset($variable['undefined_key']['another_undefined_key']);
}
if(isset($variable->undefined_prop)){
unset($variable->undefined_prop->another_undefined_prop);
}
जब वस्तुओं के साथ काम करने के बारे में सोचने के लिए एक और बात है, और दृश्यता है।
सिर्फ इसलिए कि इसका मतलब यह नहीं है कि आपके पास इसे संशोधित करने की अनुमति है।