<?php // fonction empêchant les erreurs e-notice function notice($pgsvar, $vide="") { return !isset($pgsvar) ? $vide : $pgsvar; } /********** return !isset($pgsvar) ? $vide : $pgsvar; Equivaut à if(!isset($pgsvar) { $mavar = $vide ; } else { $mavar = $pgsvar ; } return $mavar; **********/
Salut :-)Un code similaire posté y'a pas longtemps ressemble exactement à celui-ci.C'est simple mais efficace.
$mavar = (isset($mavar)) ? $mavar : '' ;plus simple, plus rapide... et prend moin de place.Peut être utiliser sous cette forme:$mavar = (isset($_GET['mavar']) && !empty($_GET['mavar'])) ? $_GET['mavar'] : '' ;
Le plus rapide est encore le couple if=>else
Mais c'est plus long a coder. Puis de toute manière, ce n'est que des millièmes de secondes donc pas la peine de palabrer sur le sujet.Aussi, quand je dit plus rapide, je parle du temps pour le taper :p"J'ai raison ta tord"(tm)
hum si tu veux
Bonsoir,En fait l'idée de cette fonction m'est venue en regardant une source développée sur un autre site ou l'auteru incluait un fichier de test de ses variables du gensre if(isset($var)||$var!='')... sur une cinquantaine de lignes. Je me suis dis que créer une fonction de test (simple) et l'appliquer à mes varaibles rendrait mon code plus lisible.Je suis pas très sur que l'utilisation d'une fonction rende le temps d'exécution du script plus lent.Et enfin l'utilisation de condition ? valeur si vrai : valeur si faux;équivaut à if(condition) {valeur si vrai; } else {valeur si faux; }enfin pour des test simple (d'aprés ce que j'ai vu dans nombres de bouquins et sur nombre de sites)Florian
c'est if then... seul l'écriture change....
heu tu t'es pas gourré de forum ?if then c'est du VB ^^
je faisais une comparaisons de des deux commentaires :Commentaire de : Anthomicro le 14/05/2005 22:54:27Envoyer un message à AnthomicroCommentaire de : Jayadeva le 14/05/2005 22:42:17et disais seulement que (condition)?valeur_si_vrai:valeur_si_faux c'est un simple if=>else... J'ai mis le then car pour moi, il est représenté dans le { qu'on met après un if, même si ce n'est pas tout à fait vrai...
bah le if est plus rapide que l'opérateur ternaire.
Et l'utilisation de @ ? plus simple, non ? pas d'alternative c'est sur, mais evite les messages d'erreurs...$mavar = @$mavar; ou directement mafunction(@$mavar);NB : $a = @array($v1,$v2); //plus clean et simple que:$a = array(@$v1,@$v2);
tu dois utiliser isset pour vérifier si ta variable existe, le @ c'est du bricolage dans le cas présent.
Pas plus qu'une modification de configuration afin de ne pas montrer les notices de cet ordre la... D'autant plus que les hébergeurs courant (pro ou non) sont généralement configurés pour ne pas relever ce type d'erreurs. En tout cas, je traite couramment avec des hébergeurs pros et j'ai eu l'occasion de tester ce genre de choses (entre autres sivit,cornut,xelacom pour ne pas les citer)!Le seul inconvénient de l'opérateur @ est de ne pas donner d'indication si l'erreur non affichée générait une sortie de script... Mais si l'on sait taper un nom de variable, tout devrait aller. lol
" Pas plus qu'une modification de configuration afin de ne pas montrer les notices de cet ordre la"J'ai jamais dit le contraire...Ta solution et la solution de masquer les notices se valent (malheureusement dans le mauvais sens...) lol
Il est vrai que les hebergeurs courant n'affiche pas les notices. Pourtant quand tu développe il est conseiller de les voir, ca te permet de trouver ce qui ne va pas dans ton code.Ca aide vraiment :)Je trouve cette source quelques peux... innutile :)
Hello,suis d'accord avec cette derniere remarque. Rien a redire sur le code en lui-meme, mais je ne suis pas pour sa philosophie ;-)Perso j'aime tester mes variables...parce que j'aime avoir le controle de ce que je vais faire si elle existe ou n'existe pas, ou n'est pas du type attendue etc...une fonction generique gerant ca...boaf. C'est bien plus clair, me semble t il, ce que l'on attend, quand on teste explicitement chaque variable. Si je mets un is_array (), et que je relis ce code qques mois plus tard (ou que qqu'un d'autre lit ce code), j'aurais une petite idee de ce que j'attendais... ;-)Bref, jamais compris les @ et les anti E_ALL, personnellement.
Se souvenir du profil
Mot de passe oublié ? / Activation de compteCréer un compte
1 598 784 membres 53 nouveaux aujourd'hui 15 441 membres club