En PHP, qu'est-ce que les différences entre la valeur NULL et la définition d'une chaîne à l'égalité de 2 apostrophes
J'ai utilisé à ce genre de choses quand j'ai voulu les valeurs vides.
$blankVar = '';
Puis, après quelques mois, j'ai décidé que cela allait mieux et avait une claire intention.
$blankVar = null;
Cela a fonctionné sans problème pendant un certain temps, mais récemment, avec un AOP préparées j'ai rencontré un problème. La liaison d'une valeur null fait de l'échec de la requête, tout en le liant à " ne pas. J'avais besoin de le lier à nulle, de sorte que si une condition est remplie, il serait insérez des données.
Quelles sont les différences entre les 2? Je pense toujours égale à null (ou au moins une constante) semble mieux, dois-je donc faire?
define('EMPTY', '');
Vous devez vous connecter pour publier un commentaire.
Null est juste un autre type de données en PHP, qui n'a qu'une valeur (null). Depuis PHP est faiblement typé langue, il peut être source de confusion façon dont il traite les différentes valeurs.
"", 0, "0", False, array(), Null
sont tous considérés comme de Faux en PHP.Null, cependant, est une autre sorte d'animal. Le principal incompatibilité avec l'aide de Null, c'est que vous ne pouvez pas dire si c'isset().
Null est bizarre dans le sens où il ne suit pas normale des règles très variables en PHP (au moins certaines). Dans la plupart des cas, il est très bien.
Quand il s'agit de colonnes de base de données, PHP NULL n'a pas sa place là. Vous voyez, le SQL est une chaîne de caractères en fonction de la langue. SQL NULL doit être représenté par
NULL
sans les guillemets.Donc, si vous voulez un champ VIDE, réglez-le sur ""
Mais si vous voulez un champ NUL, mis à NULL
GRANDE DIFFÉRENCE.
Mais si vous essayez d'insérer du PHP NULL directement, il va ajouter un zéro caractères de la requête, (qui vous laisse avec une vierge ou une erreur de syntaxe, en fonction de si vous cité).
null est un spécial valeur de l'espace réservé dans le langage de programmation qui, littéralement, signifie "rien". Ce n'est pas 0, c'est pas une chaîne vide, ce n'est rien. Il n'existe pas de valeur dans la mémoire d'être souligné. Une chaîne vide, d'autre part, est encore un objet de type string, juste un très court 🙂
Bien, c'est une chose de gentil chaque approche, regarde, mais la principale différence est que l'on est une chaîne vide, et l'autre est une variable non initialisée (null)
Hormis les différences indiquées par Rex, il y a deux types de comparaisons en PHP, lâche et stricte:
http://www.php.net/manual/en/types.comparisons.php
Si stricte des comparaisons ou des fonctions telles que is_null() sont utilisées dans n'importe quelle capacité, vous obtiendrez des résultats différents. Avec en vrac des comparaisons, cependant, PHP est assez clémente.
Je ne sais pas pour vous, mais vous pouvez être en mesure d'utiliser votre null approche, puis il suffit de transtypage lorsque vous êtes à l'aide de la variable dans le contexte où vous avez eu des questions (c'est à dire passer de caractères (string) $blankVar). Si cela fonctionne, cela peut signifier moins de changements sont nécessaires à votre code.
'null' est l'unique chose que les variables non initialisées consulter. Vous pouvez définir une variable de référence à null. Il y a aussi 'annuler' état de signification de la variable n'existe pas du tout. Vous pouvez le vérifier via le la fonction isset() de la fonction. Le plus souvent utilisé pour vérifier si un élément d'un tableau existe et est, par exemple, un moyen de voir si $_GET['op'] a reçu une querystring param. Vous pouvez également faire une variable unset (supprimer un élément d'un tableau) via le unset() la fonction. Il y a aussi un la fonction empty() qui va vérifier si une variable est NULL, FALSE, 0, ou une chaîne vide