2013-06-08 5 views
12

मुझे यह जांचने की ज़रूरत है कि चर किसी चीज़ पर सेट हैं या नहीं। अब तक मैं strlen() का उपयोग कर रहा हूं, लेकिन यह वास्तव में शर्मनाक है क्योंकि मुझे पूरा यकीन है कि एक बार फिर से उपयोग करने के लिए एक बहुत ही कुशल कार्य नहीं है। - अगर मैं www.example.com?variable=&somethingelse=1 थाजांचें कि php get variable को किसी भी चीज़ पर सेट किया गया है या नहीं?

if (strlen($_GET['variable']) > 0) 
{ 
    Do Something 
} 

ध्यान दें कि मैं इसे कुछ भी करने को करता है, तो $_GET['variable'] = ''

बस स्पष्ट करने के लिए मैं क्या मतलब है नहीं करना चाहती:

मैं की जांच इस तरह और अधिक कुशलता से कैसे करते हैं मैं यह है कि isset() के लिए जाँच अगर बयान

+2

यह शर्मनाक नहीं है, यह आपकी इच्छा के अनुसार काम करता है और पठनीय और समझ में आता है। –

+0

बस मेरा मतलब स्पष्ट करने के लिए - अगर मेरे पास www.example.com?variable=&somethingelse=1 था, तो मैं इसे घुसपैठ नहीं करना चाहूंगा कि अगर कथन –

+0

Awww मैं अपनी स्क्रिप्टिंग से शर्मिंदा नहीं होने की कोशिश करता हूं लेकिन कभी-कभी कठिन होता है ! –

उत्तर

24

साथ खाली चरित्र आप empty कोशिश कर सकते हैं।

if (!empty($_GET['variable'])) { 
    // Do something. 
} 

प्लस तरफ, यह भी यदि चर या सेट नहीं है, जैसे कि, वहाँ isset अलग से कॉल करने के लिए कोई जरूरत नहीं है की जाँच करेगा।

isset पर कॉल न करने के संबंध में कुछ भ्रम है। documentation से।

एक चर को खाली माना जाता है यदि यह अस्तित्व में नहीं है या यदि इसका मान गलत है। खाली() एक चेतावनी उत्पन्न नहीं करता है अगर चर मौजूद नहीं है।

और ...

खाली() इसका मतलब है कि अनिवार्य रूप से! Isset ($ वर) के लिए संक्षिप्त बराबर है || $ var == झूठी।

+3

यह गलत है, क्योंकि नोटिस फेंक दिया जा सकता है। [प्रलेखन] (http://in3.php.net/empty) से जारी – Winston

+1

@ विंस्टन का उपयोग करें: यदि यह अस्तित्व में नहीं है या यदि इसका मान गलत है तो एक चर को खाली माना जाता है। खाली() एक चेतावनी उत्पन्न नहीं करता है अगर चर मौजूद नहीं है। –

+0

आप सही हैं! क्षमा करें ... लेकिन इससे पहले, अगर आपने ऐसा लिखा है, तो यह नोटिस फेंक सकता है। – Winston

6
if(isset($_GET['variable']) && $_GET['variable']!=""){ 

} 
+2

क्या होगा यदि किसी इनपुट में 'value =" "जारीकर्ता सत्य होगा लेकिन अभी भी – Fabio

+0

खाली होगा और हाँ, वही है जो क्यू चाहता था: __ ध्यान दें कि मैं यह नहीं चाहता कि यह $ _GET [ 'वेरिएबल'] = '' __ –

+0

@ एक्सेल एल्थोर, लेकिन उपरोक्त कोड कुछ करेगा यदि मूल्य = ""। यह सेट है, इसलिए यदि स्थिति 'सत्य' होगी। –

0

आप उपयोग कर सकते हैं घुसना करने के लिए नहीं करना चाहते, लेकिन मैं नहीं बल्कि नहीं के लिए भी की जाँच करेगा != ''

if (isset($_GET['variable'])) && ($_GET['variable']) != '') 
2
if(isset($_GET['variable']) && !empty($_GET['variable'])) 
{ 
//Do Something 
} 
+1

यदि आप 'खाली' का उपयोग करने जा रहे हैं तो आपको 'जारीकर्ता' को कॉल करने की आवश्यकता नहीं है। आप विवरण के लिए मेरा उत्तर देख सकते हैं या [दस्तावेज़ीकरण] (http://in3.php.net/empty) देख सकते हैं। –

0

कैसे बस के बारे में

if ($_GET['variable']) 
{ 
    Do Something 
} 
+0

'_ _GET ['variable'] = '0''' के साथ काम नहीं करेगा; –

+0

या शायद: अगर ($ _GET ['variable']! = "") –

1

तुम सिर्फ यदि कोई $ _GET मूल्य जानने के बिना, सेट किया गया है सिर्फ $ _GET सरणी गिनती जाँच करना चाहते हैं:

<?php 
if (count($_GET) == 0): 
    // do your stuff 
else: 
    // do your other stuff 
endif; 
?> 
संबंधित मुद्दे