Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

FUNCTION EMPÊCHANT LES ERREURS E-NOTICE


Information sur la source

Catégorie :Astuces Niveau : Débutant Date de création : 14/05/2005 Vu : 1 729

Note :
3,75 / 10 - par 4 personnes
3,75 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (16)
Ajouter un commentaire et/ou une note

Description

Pour ceux qui comme moi en ont assez de tester leur variables... une petite fonction qui me permet d'éclaicir mon code.
 

Source

  • <?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;
  • **********/
<?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;
**********/

Conclusion

$pgsvar : autrement dit ma variable $_POST[], $_GET[] ou $_SESSION[]
$vide : la variable à retourner au cas ou...

Pour utiliser la fonction, rien de plus simple :
$var = notice($_POST['var']);
$var = notice($_SESSION['var'], '123');

N'hésitez pas si vous avez des améliorations...

Florian
 

Commentaires et avis

signaler à un administrateur
Commentaire de Anthomicro le 14/05/2005 17:38:43

Salut :-)

Un code similaire posté y'a pas longtemps ressemble exactement à celui-ci.

C'est simple mais efficace.

signaler à un administrateur
Commentaire de Jayadeva le 14/05/2005 22:42:17

$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'] : '' ;

signaler à un administrateur
Commentaire de Anthomicro le 14/05/2005 22:54:27

Le plus rapide est encore le couple if=>else

signaler à un administrateur
Commentaire de Jayadeva le 14/05/2005 23:06:16

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)

signaler à un administrateur
Commentaire de Anthomicro le 15/05/2005 00:14:25

hum si tu veux

signaler à un administrateur
Commentaire de mfaraday le 15/05/2005 02:11:35

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

signaler à un administrateur
Commentaire de coucou747 le 15/05/2005 17:12:47


c'est if then... seul l'écriture change....

signaler à un administrateur
Commentaire de Anthomicro le 15/05/2005 17:46:11

heu tu t'es pas gourré de forum ?

if then c'est du VB ^^

signaler à un administrateur
Commentaire de coucou747 le 15/05/2005 17:59:17

je faisais une comparaisons de des deux commentaires :

Commentaire de : Anthomicro le 14/05/2005 22:54:27Envoyer un message à Anthomicro

Commentaire de : Jayadeva le 14/05/2005 22:42:17


et 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...

signaler à un administrateur
Commentaire de Anthomicro le 15/05/2005 18:12:05

bah le if est plus rapide que l'opérateur ternaire.

signaler à un administrateur
Commentaire de Cyrille2 le 15/05/2005 19:31:46 administrateur CS

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);

signaler à un administrateur
Commentaire de Anthomicro le 15/05/2005 20:46:37

tu dois utiliser isset pour vérifier si ta variable existe, le @ c'est du bricolage dans le cas présent.

signaler à un administrateur
Commentaire de Cyrille2 le 15/05/2005 22:41:17 administrateur CS

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

signaler à un administrateur
Commentaire de Anthomicro le 15/05/2005 22:46:52

" 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

signaler à un administrateur
Commentaire de Jayadeva le 16/05/2005 11:10:28

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 :)

signaler à un administrateur
Commentaire de malalam le 16/05/2005 12:20:04 administrateur CS

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.

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Octobre 2008
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,16 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.