2012-03-18 5 views
26

में परिभाषित

$error = ''; 
$error = false; 
$error = 0; 
  • है जो विधि 'बेहतर' या हो सकता है यह, जिसमें निर्भर करता है स्थिति मैं का उपयोग करता हूं?
  • आपका सुझाव क्या है?
+1

हाँ, यह क्या आप इसके लिए उपयोग कर रहे हैं पर निर्भर करता है। उल्लेख किए गए अपवादों के लिए –

उत्तर

34

अपने डिजाइन पर निर्भर करता है:

  • आप त्रुटि के मामले में एक वस्तु के रूप में सेट कर रहे हैं? NULL का प्रयोग करें।
  • क्या आप इसे त्रुटि के मामले में true पर सेट कर रहे हैं? false का प्रयोग करें।
  • क्या आप इसे त्रुटि के मामले में किसी प्रकार के रूप में सेट कर रहे हैं? 0 का उपयोग करें।
  • क्या आप इसे त्रुटि का वर्णन करने के लिए एक स्ट्रिंग पर सेट कर रहे हैं? '' का प्रयोग करें।

त्रुटियों को इंगित करने का एक बेहतर तरीका throwing Exceptions होगा, हालांकि एक चर सेट करने और इसके अनुसार त्रुटि निर्धारित करने के बजाय।

+1

+1! – Neysor

+0

एक सरणी के बारे में क्या है? – Kwadz

+1

@Kwadz आमतौर पर एक खाली सरणी। –

3

इस प्रश्न का कोई कैननिक जवाब नहीं है। जब तक आप लगातार इन सेफफोर्स में से एक का उपयोग करते हैं, तब तक आप जो कुछ भी चाहते हैं उसका उपयोग कर सकते हैं। चूंकि PHP कमजोर टाइप किया गया है, ये सभी मान "झूठी" हैं और इन्हें बूलियन तुलना में FALSE के रूप में मूल्यांकन किया जा सकता है।

उस ने कहा, खाली स्ट्रिंग और दूसरों के बीच एक अंतर है, इसलिए मैं इस तरह के परिदृश्य में NULL एस और FALSE एस के साथ रहूंगा।

1

यह उन स्थितियों पर निर्भर करता है जहां आपको $error का उपयोग करने की आवश्यकता है। NULL का उपयोग करना मैंने ज्यादातर चुना है क्योंकि मैं MySQL खंडों और सभी के साथ अधिक सौदा करता हूं!

1

1.

$v = NULL; 

settype($v, 'string'); 
settype($v, 'int'); 
settype($v, 'float'); 
settype($v, 'bool'); 
settype($v, 'array'); 

var_dump($v); 

2.

$v = NULL; 
var_dump((string) $v); 
var_dump((int) $v); 
var_dump((float) $v); 
var_dump((bool) $v); 
var_dump((array) $v);