Bonjour à tous
Je viens de commencer le passage de mon code de PHP 5.3 -> 5.4 il y a un truc qui m'échappe un peu sur les if isset, d'après la doc isset ne s'utilise uniquement pour des variables, engros
Je ne dois plus utilisé
if(isset($_GET'toto']) && $_GET'toto']==1);
mais plutôt
$var = isset($_GET'toto']) && $_GET'toto'] ? $_GET'toto'] : null;
if(isset($var)){
//
}
if(isset($_GET'toto']) && $_GET'toto']==1);
C'est toujours valide tu peux mettre un lien vers l'article qui te dit le contraire ?
La doc php ne dispose pas de tout les cas de figures, ici ils font des exemples avec des variables mais le isset sur les variables GET et/ou POST fonctionnent très bien.
En fait j'ai suis entrain de migrer mes projets sur un nouveau serveur avec les dernières versions d'Apache PHP et MySQL et j'ai remarqué qu'avec PHP 5.4 les if(isset($_GET'toto']) && $_GET'toto']==1); ne semble pas aussi bien marché que PHP 5.3
YO! Je pense que vous avez mal compris la doc. ^^
...
isset() fonctionne uniquement avec des variables car l'utilisation de toute autre chose aura comme conséquence une erreur d'analyse.
...
Quand ils écrivent que cette fonction ne fonctionne uniquement avec des variables, ils parlent bien évidemment des paramètres qu'on doit passer à cette fonction.
Fonctionnera: if (isset($lol, $_GET'toto'], $_POST'toto']))
Ne fonctionnera pas : if (isset(CONSTANTE)) - if (isset($foo->bar('toto'))) etc...