मुझे अपने जवाब को संपादित करना होगा क्योंकि मैंने हाल ही में कुछ सीखा है।
के @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और इसे डॉक्स में विधि हस्ताक्षर में डाल देता है।