Kiad.org

Blog d'Olivier Issaly

Incohérence de PHP

Le but de ce billet n’est pas de lister toutes les incohérences dans PHP, on s’en sortirait pas. Mais il y en a une qui m’a toujours dérangé. Et on m’a encore assuré cette semaine que c’était normal ! Je tairais le nom de la personne 😉

Donc ce qui me gène, c’est la fonction isset. Je comprends pas qu’on passe à cette fonction une variable, alors que justement on veut en tester l’existence. Cela n’a pas de sens d’utiliser une variable ou un objet alors qu’on ne sait justement pas si cet objet ou cette variable existe. Cela reviendrait à écrire object.isset() pour savoir si object existe, alors que potentiellement on va appeler une méthode sur un objet qui n’existe pas…

Le comportement de la fonction define me semble à ce titre cohérent : on passe une chaine pour le nom de la constante à définir, et pas la constante directement, puisqu’elle n’est pas encore créée. Mon propos est donc que la fonction isset devrait prendre comme premier argument une chaine. Si on veut tester que la variable foo existe, on devrait écrire isset(‘foo’).

J’en dormirais mieux la nuit….

Précédent

Web vs Brevets logiciels

Suivant

Kiko Vs Google : les forces de la concurrence peuvent cacher leurs faiblesses

1 Commentaire

  1. Umh pas vraiment, isset sert avant tout à tester des index de tableaux isset($tab[« toto »][12][« truc »]) et elle est sacrément utile et appréciée pour ça 🙂
    et devient cohérente du coup

Les commentaires sont fermés

Blog d'Olivier Issaly & Thème basé sur Lovecraft