web-dev-qa-db-fra.com

Définition d'une variable vide en php

Avant de faire quelque chose avec $ error:

$error = NULL;

Dans la scie de certains scripts:

$error = '';
$error = false;
$error = 0;
  • Quelle méthode est "meilleure" ou peut-être que cela dépend de la situation dans laquelle je l'utilise?
  • Quelle est votre suggestion?
32
ZeroSuf3r

Dépend de votre conception:

  • Le définissez-vous comme un objet en cas d'erreur? Utilisez NULL.
  • Le définissez-vous sur true en cas d'erreur? Utilisez false.
  • Le définissez-vous comme un certain nombre en cas d'erreur? Utilisation 0.
  • Le définissez-vous sur une chaîne pour décrire l'erreur? Utilisation ''.

Une meilleure façon d'indiquer les erreurs serait cependant en lançant des exceptions , plutôt que de définir une variable et de déterminer l'erreur en fonction de celle-ci.

43
Madara Uchiha

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

Il n'y a pas de réponse canonique à cette question. Tant que vous utilisez l'un de ces sémaphores de manière cohérente, vous pouvez utiliser tout ce que vous voulez. Étant donné que PHP est typé de manière lâche, toutes ces valeurs sont "fausses" et peuvent être évaluées dans une comparaison booléenne comme FALSE.

Cela dit, il y a plus de différence entre la chaîne vide et les autres, donc je resterais avec NULLs et FALSEs dans ce genre de scénario.

3
Interrobang

Cela dépend des conditions dans lesquelles vous devez utiliser le $error. Utiliser un NULL est ce que j'ai choisi principalement car je traite plus avec les clauses MySQL et tout!

1
hjpotter92