En PHP 0
est traité comme booléen faux. Par conséquent, chaque fois que je suis dans une situation où une fonction doit retourner une valeur numérique et je l'ai retourner 0, ou quand j'ai une colonne MySQL bool
avec des valeurs possibles de 0/1
, et j'utilise un code comme ceci:Quelles précautions devrais-je prendre en utilisant '0' dans PHP comme un nombre?
$active=(isActive()) ? 1 : 0;
$this->db->set('isActive',$active);
J'ai l'impression dans mon esprit que le 0
peut être converti en null
ou en une chaîne vide, par exemple ""
.
Quelles précautions dois-je prendre pour que 0
soit toujours traité comme un integer et rien d'autre?
Dans l'exemple de code que j'ai donné plus tôt, si j'utilise '$ this-> db-> set ('active', 0);' puis j'essaie d'insérer cet enregistrement dans le db, la valeur de l'enregistrement est en fait nul. Cependant, si je le change en '$ this-> db-> set ('actif', '0');' donc 0 est en guillemets simples, alors 0 est ajouté avec succès –
Cela ressemble beaucoup plus à un problème avec la bibliothèque DB vous utilisez, pas avec PHP. – Amber
La bibliothèque db met simplement la variable dans la requête, comme ceci: '" UPDATE .. SET active = '$ active' ";' –