मुझे अपने जवाब को संपादित करना होगा क्योंकि मैंने हाल ही में कुछ सीखा है।
के @return void
बजाय का उपयोग करने का @return null
एक बहुत ही विशेष अर्थ है, PHP कोड के निम्नलिखित दो उदाहरणों पर विचार करें।
<?php
function return_never() {
echo "foo";
}
function return_sometimes() {
if ($this->condition()) {
return "foo";
}
}
पहले उदाहरण में PHP वास्तव में वापस आ जाएगी NULL
, क्योंकि PHP हमेशा लौटती है NULL
। लेकिन लौटाया गया मूल्य कॉलर के लिए किसी काम का नहीं है क्योंकि यह इस बारे में कुछ नहीं कहता है कि फ़ंक्शन ने क्या किया। IDE @return void
डेवलपर को इंगित करने के लिए प्रलेखित जानकारी का उपयोग कर सकता है कि रिटर्न मान का उपयोग किया जाता है जो बिना उद्देश्य के कार्य करता है।
<?php
$foo1 = return_never();
$foo2 = return_sometimes();
पहला कॉल सेंसलेस है क्योंकि वेरिएबल हमेशा रहेगा NULL
, दूसरे में वास्तव में कुछ हो सकता है। यह और भी दिलचस्प होता जा रहा है यदि हम फ़ंक्शन कॉल को एक सशर्त में डालते हैं।
<?php
if (($foo1 = return_never())) {
var_dump($foo1);
}
if (($foo2 = return_sometimes())) {
var_dump($foo2);
}
जैसा कि आप देख सकते हैं, @return void
इसके उपयोग के मामले हैं और यदि लागू हो तो इसका उपयोग किया जाना चाहिए।
यह भी ध्यान दें कि यह आगामी PHP PSR-5 मानक का एक हिस्सा होने जा रहा है।[1]
[१] http://www.php-fig.org/psr/
void
और इसे डॉक्स में विधि हस्ताक्षर में डाल देता है।