Bienvenue sur PEBKAC.fr, le site qui recense les anecdotes où l’on se moque des utilisateurs ne maîtrisant pas l’outil informatique. PEBKAC est un acronyme signifiant « Problem Exists Between Keyboard And Chair ».session_start(), qui est obligatoire pour que le gestionnaire de session fonctionne. PEBKAC.
$_SESSION est null.
if( isset($_SESSION['tototo']) )
{
...
}
isset($_SESSION), puis array_key_exists("tototo", $_SESSION). Ça évitera toute confusion.
isset($foo['toto']['titi']['tata']) fonctionne très bien sans que $foo['toto']['titi'] ou même $foo ne soient définis. PHP gère ce genre de chose. Et il n'y a aucune confusion puisque le but étant de savoir s'il y a quelque chose dedans, null n'est pas souhaitable ici.array_key_exists c'est moche, 5 fois plus long à l'exécution, et ça va renvoyer true même si la valeur est null alors ce n'est pas du tout ce qu'on veut tester.
session_start() est plus conseillé.isset retourne false.isset de cette façon, mais il y a bel et bien des cas où c'est nécessaire. La question n'est pas de savoir si PHP le gère ou quoi. Il le gère, tant mieux. Ça ne m'empêche pas de vouloir faire des tests précis quand j'en ai besoin.isset tout en ayant démontré à peine un commentaire avant qu'un bug pouvait passer inaperçu avec cette méthode.
array_key_exists n'effectue pas ici le test qui m'intéresse. Et le tableau à null n'est pas bug inaperçu.
Bon, si le type a passé trois jours sans lire les messages d'erreurs ou quoi que ce soit, d'accord, mais en l'état, ça fait un peu faible pour constituer un PEBKAC. Je m'abstiens.