मैं संभावित रूप से अपरिभाषित चर से निपटने के लिए शॉर्टकट के रूप में संदर्भ असाइनमेंट का उपयोग करने के बारे में सोच रहा हूं।संभावित रूप से अपरिभाषित चरों को संभालने के दौरान PHP में संदर्भ असाइनमेंट का उपयोग करना बुरा व्यवहार है?
दूसरे शब्दों में, के बजाय:
$foo = &$this->blah['something']['else'];
if (!is_null($foo) && ...){
//do something with $foo
}
, सरल लगता है सही:
$foo = isset($this->blah['something']['else']) ? $this->blah['something']['else'] : null;
if (!is_null($foo) && ...){
//do something with $foo
}
मैं यह कर सकता है? जिस तरह से PHP संदर्भ द्वारा असाइनमेंट को संभालता है, मुझे इस बारे में चिंता करने की ज़रूरत नहीं है-> ब्लाह ['कुछ'] ['else'] परिभाषित किया जा रहा है, क्योंकि यदि यह अस्तित्व में नहीं है तो यह स्वचालित रूप से बनाया जाएगा और सेट हो जाएगा नल के लिए।
क्या यह रणनीति इस पर भरोसा है?
मैं कहना चाहता हूँ यह बुरा व्यवहार किया गया था। मैं दूसरे ऑपरेटर को संदर्भ ऑपरेटर की परवाह किए बिना नोटिस बढ़ाने की उम्मीद करता हूं, और जहां भी संभव हो, नोटिस को स्क्वैश किया जाना चाहिए। – halfer
सही, दूसरे फॉर्म को छोड़कर नोटिस नहीं उठाएगा! PHP असाइनमेंट-बाय-रेफरेंस उस तरह मुश्किल है। –
पहले भाग में, आप जानबूझकर त्रुटि नोटिस को दबाने के लिए '@' ऑपरेटर का उपयोग करने पर विचार क्यों नहीं करते? – hohner