PHP
नियंत्रण संरचनाएं
खोज…
नियंत्रण संरचनाओं के लिए वैकल्पिक वाक्यविन्यास
PHP कुछ नियंत्रण संरचनाओं के लिए एक वैकल्पिक वाक्यविन्यास प्रदान करता है: if
, while
, के for
, foreach
और switch
।
सामान्य वाक्य रचना की तुलना में, अंतर है, उद्घाटन ब्रेस एक कॉलन बदल दिया जाता है कि ( :
) और समापन ब्रेस ने ले ली है endif;
, endwhile;
, endfor;
, endforeach;
, या endswitch;
, क्रमशः। व्यक्तिगत उदाहरणों के लिए, नियंत्रण संरचनाओं के लिए वैकल्पिक सिंटैक्स पर विषय देखें।
if ($a == 42):
echo "The answer to life, the universe and everything is 42.";
endif;
एकाधिक elseif
शॉर्ट सिंटैक्स का उपयोग बयान:
if ($a == 5):
echo "a equals 5";
elseif ($a == 6):
echo "a equals 6";
else:
echo "a is neither 5 nor 6";
endif;
PHP मैनुअल - नियंत्रण संरचनाएं - वैकल्पिक सिंटैक्स
जबकि
while
लूप कोड के एक ब्लॉक के माध्यम से पुनरावृत्ति करता है while
तक कि एक निर्दिष्ट स्थिति सत्य है।
$i = 1;
while ($i < 10) {
echo $i;
$i++;
}
आउटपुट: 123456789
विस्तृत जानकारी के लिए, लूप्स विषय देखें।
जबकि ऐसा
do-while
लूप पहले कोड के एक ब्लॉक को एक बार निष्पादित करता है, हर मामले में, फिर कोड के उस ब्लॉक के माध्यम से तब तक पुनरावृत्ति करता है जब तक कि निर्दिष्ट शर्त सत्य है।
$i = 0;
do {
$i++;
echo $i;
} while ($i < 10);
Output: `12345678910`
विस्तृत जानकारी के लिए, लूप्स विषय देखें।
के लिए जाओ
goto
ऑपरेटर कार्यक्रम में दूसरे सेक्शन में जाने की अनुमति देता है। यह PHP 5.3 के बाद से उपलब्ध है।
गोटो निर्देश वांछित लक्ष्य लेबल के बाद एक गोटो है: goto MyLabel;
।
कूद का लक्ष्य एक MyLabel:
द्वारा पीछा किया गया लेबल द्वारा निर्दिष्ट होता है: MyLabel:
:।
यह उदाहरण Hello World!
को प्रिंट करेगा Hello World!
:
<?php
goto MyLabel;
echo 'This text will be skipped, because of the jump.';
MyLabel:
echo 'Hello World!';
?>
घोषित
declare
का उपयोग कोड के ब्लॉक के लिए निष्पादन निर्देश निर्धारित declare
लिए किया जाता है।
निम्नलिखित निर्देशों को मान्यता दी गई है:
उदाहरण के लिए, टिक्स को 1 पर सेट करें:
declare(ticks=1);
सख्त प्रकार मोड को सक्षम करने के लिए, declare
कथन का उपयोग strict_types
घोषणा के साथ किया जाता है:
declare(strict_types=1);
यदि नहीं तो
if
ऊपर दिए गए उदाहरण में स्टेटमेंट कोड खंड को निष्पादित करने की अनुमति देता है, जब शर्त पूरी होती है। जब आप किसी कोड के टुकड़े को निष्पादित करना चाहते हैं, जब शर्त पूरी नहीं होती है, if
आप एक else
साथ विस्तार करते else
।
if ($a > $b) {
echo "a is greater than b";
} else {
echo "a is NOT greater than b";
}
PHP मैनुअल - कंट्रोल स्ट्रक्चर्स - एल्स
यदि-और के लिए शॉर्टहैंड सिंटैक्स के रूप में टर्नरी ऑपरेटर
टर्नेरी ऑपरेटर किसी स्थिति के सही होने या न होने के आधार पर मूल्यांकन करता है। यह एक तुलना ऑपरेटर है और अक्सर इसका उपयोग साधारण रूप में व्यक्त करने के लिए किया जाता है, अन्यथा छोटी अवस्था में। यह जल्दी से एक शर्त का परीक्षण करने की अनुमति देता है और अक्सर एक बहु-पंक्ति को प्रतिस्थापित करता है यदि कथन, आपके कोड को अधिक कॉम्पैक्ट बनाता है।
यह एक तिरछी अभिव्यक्ति और परिवर्तनशील मूल्यों का उपयोग करके ऊपर से उदाहरण है: $a=1; $b=2;
echo ($a > $b) ? "a is greater than b" : "a is NOT greater than b";
आउटपुट: a is NOT greater than b
।
शामिल और आवश्यकता है
की आवश्यकता होती है
require
में include
करने के समान है, सिवाय इसके कि यह विफलता पर एक घातक E_COMPILE_ERROR
स्तर त्रुटि उत्पन्न करेगा। जब require
विफल हो जाती है, तो यह स्क्रिप्ट को रोक देगा। जब include
विफल हो जाता है, तो यह स्क्रिप्ट को रोक नहीं E_WARNING
और केवल E_WARNING
उत्सर्जन E_WARNING
।
require 'file.php';
PHP मैनुअल - नियंत्रण संरचनाएं - आवश्यकता है
शामिल
include
विवरण में फ़ाइल शामिल है और उसका मूल्यांकन करता है।
./variables.php
$a = 'Hello World!';
। / Main.php`
include 'variables.php';
echo $a;
// Output: `Hello World!`
इस दृष्टिकोण से सावधान रहें, क्योंकि इसे एक कोड गंध माना जाता है, क्योंकि इसमें शामिल फ़ाइल को दिए गए दायरे में परिभाषित चर की मात्रा और सामग्री में परिवर्तन होता है।
आप फ़ाइल भी include
कर सकते include
, जो मान लौटाता है। कॉन्फ़िगरेशन सरणियों से निपटने के लिए यह अत्यंत उपयोगी है:
configuration.php
<?php
return [
'dbname' => 'my db',
'user' => 'admin',
'pass' => 'password',
];
main.php
<?php
$config = include 'configuration.php';
यह दृष्टिकोण सम्मिलित फ़ाइल को परिवर्तित या जोड़े गए चर के साथ आपके वर्तमान दायरे को प्रदूषित करने से रोकेगा।
PHP मैनुअल - नियंत्रण संरचनाएं - शामिल करें
फ़ाइल द्वारा कुछ लौटाने पर वैरिएबल को मान असाइन करने के लिए भी शामिल और आवश्यकता हो सकती है।
उदाहरण :
शामिल 1। php फ़ाइल:
<?php
$a = "This is to be returned";
return $a;
?>
index.php फ़ाइल:
$value = include 'include1.php';
// Here, $value = "This is to be returned"
वापसी
return
स्टेटमेंट प्रोग्राम कंट्रोल को कॉलिंग फ़ंक्शन पर लौटाता है।
जब किसी फ़ंक्शन के भीतर से return
को कॉल किया जाता है, तो वर्तमान फ़ंक्शन का निष्पादन समाप्त हो जाएगा।
function returnEndsFunctions()
{
echo 'This is executed';
return;
echo 'This is not executed.';
}
जब आप returnEndsFunctions();
चलाते हैं returnEndsFunctions();
आपको आउटपुट मिलेगा This is executed
;
जब return
को किसी फ़ंक्शन के साथ और तर्क के भीतर से बुलाया जाता है, तो वर्तमान फ़ंक्शन का निष्पादन समाप्त हो जाएगा और कॉलिंग फ़ंक्शन पर तर्क का मान वापस आ जाएगा।
के लिये
for
छोरों आम तौर पर इस्तेमाल कर रहे हैं आप कोड का एक टुकड़ा है जो आप बार की दी गई संख्या दोहराना चाहते हैं जब।
for ($i = 1; $i < 10; $i++) {
echo $i;
}
आउटपुट: 123456789
विस्तृत जानकारी के लिए, लूप्स विषय देखें।
प्रत्येक के लिए
foreach
एक निर्माण है, जो आपको सरणियों और वस्तुओं पर आसानी से पुनरावृत्ति करने में सक्षम बनाता है।
$array = [1, 2, 3];
foreach ($array as $value) {
echo $value;
}
आउटपुट: 123
।
ऑब्जेक्ट के साथ foreach
लूप का उपयोग करने के लिए, उसे Iterator
इंटरफ़ेस लागू करना होगा।
जब आप सहयोगी सरणियों पर पुनरावृति करते हैं:
$array = ['color'=>'red'];
foreach($array as $key => $value){
echo $key . ': ' . $value;
}
आउटपुट: color: red
विस्तृत जानकारी के लिए, लूप्स विषय देखें।
अगर और नहीं तो
elseif
और if
और else
मेल elseif
है। if
बयान मूल मामले में एक अलग बयान निष्पादित करने के लिए बढ़ा दिया गया है if
अभिव्यक्ति को पूरा नहीं कर रहा है। लेकिन, वैकल्पिक अभिव्यक्ति केवल, मार डाला जब है elseif
सशर्त अभिव्यक्ति पूरा किया जाता है।
निम्नलिखित कोड प्रदर्शित करता है "या तो बी से बड़ा है", "ए बी के बराबर है" या "ए बी से छोटा है":
if ($a > $b) {
echo "a is bigger than b";
} elseif ($a == $b) {
echo "a is equal to b";
} else {
echo "a is smaller than b";
}
कई अन्य कथन
यदि आप कथन के अनुसार एक से अधिक कथन का उपयोग कर सकते हैं:
if ($a == 1) {
echo "a is One";
} elseif ($a == 2) {
echo "a is Two";
} elseif ($a == 3) {
echo "a is Three";
} else {
echo "a is not One, not Two nor Three";
}
अगर
यदि निर्माण कोड टुकड़ों के सशर्त निष्पादन के लिए अनुमति देता है।
if ($a > $b) {
echo "a is bigger than b";
}
PHP मैनुअल - नियंत्रण संरचनाएं - यदि
स्विच
switch
संरचना if
कथन की एक श्रृंखला के रूप में एक ही कार्य करती है, लेकिन कोड की कम लाइनों में काम कर सकती है। मान का परीक्षण किया जाना चाहिए, जैसा कि switch
स्टेटमेंट में परिभाषित किया गया है, प्रत्येक case
स्टेटमेंट में मूल्यों के साथ समानता के लिए तुलना की जाती है जब तक कि एक मैच नहीं मिलता है और उस ब्लॉक में कोड निष्पादित होता है। यदि कोई मैचिंग case
स्टेटमेंट नहीं मिलता है, तो default
ब्लॉक में कोड निष्पादित होता है, यदि यह मौजूद है।
किसी case
या default
स्टेटमेंट में कोड का प्रत्येक ब्लॉक break
स्टेटमेंट के साथ समाप्त होना चाहिए। यह switch
संरचना के निष्पादन को रोकता है और कोड निष्पादन को तुरंत बाद में जारी रखता है। यदि break
स्टेटमेंट को छोड़ दिया जाता है, तो अगले case
स्टेटमेंट के कोड को निष्पादित किया जाता है, भले ही कोई मेल न हो । यह अनपेक्षित कोड निष्पादन का कारण बन सकता है अगर break
स्टेटमेंट को भुला दिया जाता है, लेकिन यह उपयोगी भी हो सकता है जहां कई case
स्टेटमेंट को एक ही कोड को साझा करने की आवश्यकता होती है।
switch ($colour) {
case "red":
echo "the colour is red";
break;
case "green":
case "blue":
echo "the colour is green or blue";
break;
case "yellow":
echo "the colour is yellow";
// note missing break, the next block will also be executed
case "black":
echo "the colour is black";
break;
default:
echo "the colour is something else";
break;
}
निश्चित मानों के परीक्षण के अलावा, निर्माण को switch
स्टेटमेंट के लिए बूलियन मान और case
स्टेटमेंट को किसी भी अभिव्यक्ति प्रदान करके गतिशील बयानों का परीक्षण करने के लिए बाध्य किया जा सकता है। ध्यान रखें कि पहले मिलान मूल्य का उपयोग किया जाता है, इसलिए निम्न कोड "100 से अधिक" का उत्पादन करेगा:
$i = 1048;
switch (true) {
case ($i > 0):
echo "more than 0";
break;
case ($i > 100):
echo "more than 100";
break;
case ($i > 1000):
echo "more than 1000";
break;
}
switch
निर्माण का उपयोग करते समय ढीले टाइपिंग के संभावित मुद्दों के लिए, स्विच आश्चर्य देखें