bool टाइप (बूलियन का छोटा रूप) की केवल दो वैल्यू होती हैं: true और false. कोड में true और false को छोटे या बड़े अक्षरों में लिखने से कोई फर्क नहीं पड़ता।
<?php
$value_is_true = true;
$value_is_false = false;
बूलियन वैल्यू अक्सर किसी ऑपरेटर के परिणाम के रूप में लॉजिकल एक्सप्रेशन में आती हैं और फिर कंट्रोल स्ट्रक्चर में इस्तेमाल होती हैं।
ऐसे कई लॉजिकल ऑपरेटर हैं:
!$a: अगर $a की वैल्यू true नहीं है तो true लौटाता है$a && $b: अगर $a और $b दोनों true हैं तो true लौटाता है$a || $b: अगर $a या $b में से कोई एक true है तो true लौटाता हैand और or नाम के भी ऑपरेटर हैं, और ये क्रमशः && और || के पूरक हैं। इनका व्यवहार && और || जैसा नहीं है और ये ऐसे परिणाम दे सकते हैं जिनकी उम्मीद नहीं होती, इसलिए इनका इस्तेमाल करने की सलाह नहीं दी जाती।
इस अभ्यास में आप एक नए RPG गेम का क्वेस्ट लॉजिक बनाएँगे। यह गेम आपका एक दोस्त बना रहा है। गेम की मुख्य पात्र Annalyn है, जो एक बहादुर लड़की है और जिसके पास एक खूँखार और वफादार पालतू कुत्ता है। लेकिन दुर्भाग्य से एक विपत्ति आ पड़ी: जंगल में बेरियाँ ढूँढना के दौरान उसके सबसे अच्छे दोस्त का अपहरण कर लिया गया। Annalyn अपने सबसे अच्छे दोस्त को ढूँढकर आज़ाद कराने की कोशिश करेगी, और इस क्वेस्ट में चाहे तो अपने कुत्ते को भी साथ ले जाएगी।
अपने दोस्त के पीछे-पीछे कुछ समय चलने के बाद उसे वह शिविर मिल जाता है जहाँ उसका दोस्त कैद है। पता चलता है कि अपहरण करने वाले दो लोग हैं: एक शक्तिशाली शूरवीर और एक चालाक तीरंदाज़।
अपहरण करने वालों को ढूँढ लेने के बाद Annalyn सोचती है कि वह नीचे दी गई कार्रवाइयों में से कौन-सी कर सकती है:
आपके सामने चार काम हैं। इनमें आपको यह तय करने का लॉजिक बनाना है कि ऊपर बताई गई कार्रवाइयाँ संभव हैं या नहीं। यह इस पर निर्भर करता है कि जंगल में मिले तीनों पात्रों की स्थिति क्या है और Annalyn का पालतू कुत्ता साथ है या नहीं।
canFastAttack नाम का एक फंक्शन बनाइए जो एक बूलियन वैल्यू लेता है। यह वैल्यू बताती है कि शूरवीर जाग रहा है या नहीं।
पात्र की स्थिति के आधार पर अगर 'तेज़ हमला' कार्रवाई संभव है तो यह फंक्शन true लौटाता है।
वरना यह false लौटाता है:
<?php
$is_knight_awake = true;
$infiltration = new AnnalynsInfiltration();
$infiltration->canFastAttack($is_knight_awake);
// => false
canSpy नाम का एक फंक्शन बनाइए जो तीन बूलियन वैल्यू लेता है। ये क्रमशः बताती हैं कि शूरवीर, तीरंदाज़ और कैदी जाग रहे हैं या नहीं।
पात्रों की स्थिति के आधार पर अगर 'जासूसी' कार्रवाई संभव है तो यह फंक्शन true लौटाता है।
वरना यह false लौटाता है:
<?php
$is_knight_awake = false;
$is_archer_awake = true;
$is_prisoner_awake = false;
$infiltration = new AnnalynsInfiltration();
$infiltration->canSpy($is_knight_awake, $is_archer_awake, $is_prisoner_awake);
// => true
canSignal नाम का एक फंक्शन बनाइए जो दो बूलियन वैल्यू लेता है। ये क्रमशः बताती हैं कि तीरंदाज़ और कैदी जाग रहे हैं या नहीं।
पात्रों की स्थिति के आधार पर अगर 'कैदी को संकेत देना' कार्रवाई संभव है तो यह फंक्शन true लौटाता है।
वरना यह false लौटाता है:
<?php
$is_archer_awake = false;
$is_prisoner_awake = true;
$infiltration = new AnnalynsInfiltration();
$infiltration->canSignal($is_archer_awake, $is_prisoner_awake);
// => true
canLiberate नाम का एक फंक्शन बनाइए जो चार बूलियन वैल्यू लेता है।
पहले तीन पैरामीटर क्रमशः बताते हैं कि शूरवीर, तीरंदाज़ और कैदी जाग रहे हैं या नहीं।
अंतिम पैरामीटर बताता है कि Annalyn का पालतू कुत्ता साथ है या नहीं।
पात्रों की स्थिति और Annalyn के पालतू कुत्ते के साथ होने के आधार पर अगर 'कैदी को आज़ाद करना' कार्रवाई संभव है तो यह फंक्शन true लौटाता है।
वरना यह false लौटाता है:
<?php
$is_knight_awake = false;
$is_archer_awake = true;
$is_prisoner_awake = false;
$is_dog_present = false;
$infiltration = new AnnalynsInfiltration();
$infiltration->canLiberate(
$is_knight_awake,
$is_archer_awake,
$is_prisoner_awake,
$is_dog_present
);
// => false
Exercism पर साइन अप कीजिए और PHP को 11 कॉन्सेप्ट122 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।