2012-07-23 11 views
5

संभव डुप्लिकेट के बराबर होती है, तो:
Short hand to do something like: if($variable == 1 || $variable == “whatever” || $variable == '492') .PHP: एक बी या सी या डी

इस

if ($a==b||$a==c||$a==$d){ ... 

कम से कम इस तर्क का वर्णन करने के तरीका है। मैं कुछ के बारे में की तरह

if ($a==($b||$c||$d)) { ... 

में सोच रहा हूँ, लेकिन यह एक मान्य कोड नहीं है। कोई सुझाव?

+0

इस विधि के साथ क्या गलत है? – bugwheels94

+2

यह सही नहीं है क्योंकि आप बुलियन या करने के लिए प्रयास कर रहे हैं || गैर बुलियन मूल्यों के बीच। – rkosegi

+3

['in_array'] (http://php.net/in_array) का उपयोग करें। – deceze

उत्तर

11

आप in_array इस्तेमाल कर सकते हैं:

if(in_array($a, array($b,$c,$d))){ 
    //do something 
} 
+1

+1 बहुत बढ़िया तकनीक – mrsrinivas

+0

हा, हमें लगता है कि एक जैसे – bigkm

+0

आप डुप्लीकेट के रूप में इस सवाल को बंद कर दिया जाना चाहिए था ... –

1

दोनों कर रहे हैं नहीं एक ही || के रूप में बुलियन ऑपरेटर है और हमेशा true या false वापस आ जाएगी कि। तो दूसरे कथन में, आप तुलना कर रहे हैं कि $atrue या false है।

आप अगर $aarray($b, $c, $d) में मौजूद है

1

पता नहीं है क्यों तुम बात किसी प्रकार का क्या करना चाहते हैं की तुलना करने के in_array उपयोग कर सकते हैं, लेकिन आप सरणी में बी, सी, डी डाल दिया और खोज करने के लिए समारोह in_array कॉल कर सकते हैं तत्वों के लिए। फिर भी मैं समझ नहीं पा रहा हूं कि आप छोटे और सरल कोड को छोटा और सरल क्यों बनाना चाहते हैं।

+0

क्योंकि मैं लगभग 15 मूल्यों जो मैं के रूप में मेरे द्वारा सुझाए यदि – Martin

+0

तो in_array में मुझे मिल चाहते हैं और अन्य शामिल हैं। –

2

यह मान्य कोड है लेकिन तर्कसंगत रूप से सही नहीं है।

यदि आपके पास बहुत सारे मूल्य हैं तो आप ऐसा कुछ कर सकते हैं।

if(in_array($a,array($b,$c,$d))) { 
} 
+0

अच्छा जवाब, लेकिन यह एक मिनट पहले @Engineer जैसा ही लिखा था। – Fluffeh

+0

@ फ्लुफफ: और 9 महीने पहले एसीआई-लाइम जैसा ही लिखा था। –

+0

@ फ़ेलिक्सक्लिंग कोई संदेह नहीं है कि डुप्लीकेट हैं, डुप्लीकेट देखने के लिए अभी तक इस क्यू एंड ए को देखकर चले गए :) – Fluffeh