2012-03-18 4 views
26

Prima di fare qualcosa con $ error:variabile vuota definire in php

$error = NULL; 

In sega di qualche script:

$error = ''; 
$error = false; 
$error = 0; 
  • Quale metodo è 'meglio' o forse dipende in cui situazione io uso esso?
  • Qual è il tuo suggerimento?
+1

Sì, dipende da quello che stai usando per. –

risposta

34

dipende dal vostro disegno:

  • Si sta impostando come un oggetto in caso di errore? Utilizzare NULL.
  • Lo stai impostando su true in caso di errore? Utilizzare false.
  • Lo stai impostando come un numero di qualche tipo in caso di errore? Utilizzare 0.
  • Si sta impostando su una stringa per descrivere l'errore? Utilizzare ''.

Un modo migliore per indicare gli errori sarebbe throwing Exceptions, invece di impostare una variabile e determinare l'errore in base ad esso.

+1

+1 per le eccezioni menzionate! – Neysor

+0

Che cos'è un array? – Kwadz

+1

@ Kwadz Un array vuoto, di solito. –

3

Non c'è una risposta canonica a questa domanda. Finché utilizzi uno di questi semafori in modo coerente, puoi utilizzare tutto ciò che desideri. Poiché PHP è digitato in modo approssimativo, tutti questi valori sono "falsy" e possono essere valutati in un confronto booleano come FALSE.

Detto questo, c'è più di una differenza tra la stringa vuota e le altre, quindi rimango con NULL se FALSE s in questo tipo di scenario.

1

Dipende dalle condizioni in cui è necessario utilizzare $error. L'utilizzo di uno NULL è quello che ho scelto principalmente perché mi occupo maggiormente delle clausole MySQL e tutto!

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);