Mes impressions sur le web, les standards et autres…
Je viens de constater une chose étrange avec PHP5. Si la valeur d’une propriété d’un objet est récupérée par le
biais de la méthode magique __get()
, cette propriété est toujours considérée comme vide lorsqu’on
la teste avec empty()
:
class Test {
private $_foo = 'bar';
public function __get($name)
{
if( $name == 'foo' ) {
return $this->_foo;
}
}
}
$test = new Test();
echo $test->foo;// affiche bien 'bar'
var_dump(empty($test->foo));// affiche bool(true) ?!
Il y a probablement une logique interne derrière ce comportement surprenant, mais basiquement, on s’attend simplement
à ce que empty()
nous dise si la variable ou l’attribut testé est vide ou pas, point barre. Cela fait
partie de ces comportements vicieux qu’a parfois PHP.
Dans la même veine, on a le résultat d’une comparaison non stricte entre un entier et une chaîne (par exemple issue de $_POST) :
$var1 = 1;
$var2 = '1textQuelconque';
var_dump($var1 == $var2);
…affichera 'bool(true)'. Et oui… C’est déjà plus logique, si l’on veut, mais c’est tout aussi vicieux.
Attention donc, quand vous contrôlez les données provenant d’un formulaire. Rappelez-vous que tout ce que vous
recevez dans $_GET, $_POST et les autres ont le type 'string' (ou 'array', si vous passez des tableaux), donc faites
vos comparaisons exclusivement entre valeur de type 'string', ou bien utilisez intval()
et ses amis
quand vous attendez des données précises.
Et voilà. Migration achevée en un temps record. Ne reste plus qu’à attendre que les DNS finissent de se propager joyeusement. Au menu :
Je vous faisais part au tout début du mois de février d’un article écrit par Krassimir Petrov et analysant la décision de l’Iran d’ouvrir une bourse du pétrole en euros en mars 2006 et son impact sur le monde. Cette bourse va ouvrir ses portes lundi prochain (20 mars 2006; cette date aura probablement autant d’importance pour les générations futures que le 29 octobre 1929).
Je viens de tomber sur une analyse du think-tanks Europe 2020
à propos de la crise mondiale majeure qui se profile à l’horizon. Cet article est à lire absolument ! Je vous préviens cependant, vous en ressortirez probablement avec un filet de sueur froide entre les omoplates…