क्या "अन्य" और "अन्य" यदि पूरी तरह से समानार्थी हैं?


170

कर रहे हैं elseifऔर else ifपूरी तरह से पर्याय बन गया है, या वहाँ एक अंतर है?

क्या Zend के पास एक स्वीकृत "मानक" है जिस पर एक का उपयोग करना है?

हालांकि मैं व्यक्तिगत रूप elseifसे कोड को देखना पसंद नहीं करता, मुझे बस यह जानना होगा कि क्या वे पर्यायवाची हैं और PHP मैनुअल खोज करने के लिए सबसे आसान नहीं है।


10
हर दूसरी भाषा का उपयोग नहीं करता है else if, वैसे। उदाहरण के लिए, VB भी उपयोग करता है ElseIfऔर रूबी उपयोग करता है elsif
डैनियल वांडर्सलुइस

6
और शेल / बैश elif
knittl

7
अजगर भी
एलिफ़

जवाबों:


218

से पीएचपी मैनुअल :

PHP में, आप if if if ’(दो शब्दों में) भी लिख सकते हैं और व्यवहार in aifif’ (एक शब्द में) के समान होगा। वाक्य-विन्यास का अर्थ थोड़ा अलग है (यदि आप C से परिचित हैं, तो यह समान व्यवहार है) लेकिन लब्बोलुआब यह है कि दोनों बिल्कुल समान व्यवहार में परिणत होंगे।

अनिवार्य रूप से, वे एक ही व्यवहार करेंगे, लेकिन else ifतकनीकी रूप से एक नेस्टेड संरचना के बराबर है:

if (first_condition)
{

}
else
{
  if (second_condition)
  {

  }
}

मैनुअल भी नोट करता है:

ध्यान दें कि अन्य उदाहरण के रूप में घुंघराले कोष्ठक का उपयोग करते समय केवल उसी के समान माना जाएगा। यदि आपके / ifif स्थितियों को परिभाषित करने के लिए किसी कोलन का उपयोग करते समय, आपको दो शब्दों में अलग नहीं होना चाहिए, या PHP एक पार्स त्रुटि के साथ विफल हो जाएगा।

जिसका अर्थ है कि सामान्य नियंत्रण संरचना में (यानी। ब्रेसिज़ का उपयोग करके):

if (first_condition)
{

}
elseif (second_condition)
{

}

या तो elseifया else ifइस्तेमाल किया जा सकता। हालाँकि, यदि आप वैकल्पिक सिंटैक्स का उपयोग करते हैं, तो आपको इसका उपयोग करना होगा elseif:

if (first_condition):
  // ...
elseif (second_condition):
  // ...
endif;

18
उदाहरण स्निपेट्स के साथ अच्छी नौकरी। यदि कुछ भी हो, तो वैकल्पिक सिंटैक्स यह साबित करने के लिए आवश्यक है कि PHP बस के else ifरूप में व्यवहार करता है else { if {
BoltClock

2
PHP के else ifरूप में इलाज नहीं करता है else { if {, अन्यथा आप ऐसा करने में सक्षम नहीं होंगे if (0) { } else if (0) { } else { }...
Guido Hendriks

4
@GuidoHendriks: ऐसा नहीं है कि एक को दूसरे के रूप में माना जाता है, यह है कि वे कार्यात्मक रूप से समकक्ष हैं। आपका उदाहरण नेस्टेड फॉर्म के बराबर है if (0) { } else { if (0) { } else { } }। ध्यान दें कि अंतिम elseब्लॉक में कोई अस्पष्टता नहीं है , जो हमेशा पूर्ण शाखाओं के लिए मामला है (प्रत्येक ifमें एक है else)।
आउट

यहाँ संदर्भ के लिए एक और उदाहरण है php.net/manual/en/control-structures.elseif.php#115851
WhyAyala

वैकल्पिक पर्यायवाची के साथ आपको बस 'बृहदान्त्र' को याद रखना होगा और भीतर का एंडिफ़ अगर: if ($v1='1'): do_thing(); else: if($v1='b' ): do_another_thing(); else: do_smthing_else(); endif; endif; के बराबर है; if ($v1='1'): do_thing(); elseif($v1='b' ): do_another_thing(); else: do_smthing_else(); endif;
DDS

47

फ्रेमवर्क इंटरऑपरेबिलिटी ग्रुप (एफआईजी) जो सदस्यों से बना है जिसमें Zend ( https://github.com/php-fig/fig-standards#voting-members ) के डेवलपर्स शामिल हैं , एक साथ मानक सिफारिशों (PSR) की एक श्रृंखला डालते हैं - #)।

Zend2 और Symfony2 पहले से ही PSR-0 का अनुसरण करते हैं।

शैलियों के लिए कोई कठिन और तेज़ नियम नहीं है, लेकिन आप जितना हो सके PSR-2 का उपयोग करके प्रयास कर सकते हैं।

अगर PSR-2 में vsifif है तो बाकी पर एक टिप्पणी है:

कीवर्ड के अन्य शब्द का उपयोग इसके बजाय किया जाना चाहिए ताकि सभी नियंत्रण कीवर्ड एकल शब्दों की तरह दिखें।

https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md#51-if-elseif-else

सिफारिशों में से कुछ ही हैं, सिफारिशें। यह आप पर निर्भर है कि क्या अन्य का उपयोग करना है या नहीं


4
कीवर्ड-ए-वन-शब्द दिशानिर्देश को इंगित करने के लिए आपका बहुत-बहुत धन्यवाद।
थियोडोर आर। स्मिथ
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.