2012-03-18 14 views
26

Przed robi coś z $ błędu:zmienna Empty określić w php

$error = NULL; 

SAW jakiegoś skryptu:

$error = ''; 
$error = false; 
$error = 0; 
  • która metoda jest 'lepsze' lub może to zależy, w którym sytuacji używam to?
  • Jaka jest Twoja sugestia?
+1

Tak, to zależy od tego co używasz go. –

Odpowiedz

34

Zależy projektu:

  • Czy ustawienie go jako obiekt w przypadku błędu? Użyj NULL.
  • Czy w przypadku błędu ustawiasz go na true? Użyj false.
  • Czy ustawiasz go jako pewną liczbę w przypadku błędu? Użyj 0.
  • Czy ustawiasz ciąg znaków, aby opisać błąd? Użyj ''.

Lepszym sposobem na wskazanie błędów byłby jednak throwing Exceptions zamiast ustawiania zmiennej i określania błędu zgodnie z nią.

+1

+1 dla wymienionych wyjątków! – Neysor

+0

Co to jest tablica? – Kwadz

+1

@Kwadz Pusta tablica, zwykle. –

3

Nie ma kanonicznej odpowiedzi na to pytanie. Dopóki używasz jednego z tych semaforów konsekwentnie, możesz użyć czegokolwiek, co chcesz. Ponieważ PHP jest luźno napisane, wszystkie te wartości są "falsy" i mogą być ocenione w porównaniu boolean jako FALSE.

Powiedział, że jest większa różnica między pustym ciągiem a pozostałymi, więc w tym scenariuszu trzymam się NULL s i FALSE s.

1

Zależy to od warunków, w których należy korzystać z $error. Korzystanie z NULL jest tym, co wybrałem głównie dlatego, że zajmuję się bardziej klauzulami MySQL i wszystkim!

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