Isset() Centraliser les erreurs [Résolu] - PHP - Programmation
Marsh Posté le 29-08-2011 à 22:32:14
Passe le nom de ta variable en string à la fonction ($varName), et dans la fonction fait un if ( isset(${$VarName}) )
Marsh Posté le 29-08-2011 à 23:32:52
Hum, un peu tard pour faire de la gymnastique de var
J'ai essayé ça comme ça :
Code :
|
Mais ça ne fonctionne pas. Dans ma fonction ${$var} est bien l'équivalent de $entreprise ?
Je réfléchis en répondant, mais la portée n'est plus bonne pour ma var $entreprise dans tous les cas non ?
Marsh Posté le 30-08-2011 à 01:04:34
D'un côté il y a le check isset, de l'autre le check si la valeur est nulle.
Mais effectivement, c'est un problème de portée.
Une solution pourrait être de tenter un global ${$var}, mais n'utilisant jamais de variable globales dans mes codes, je n'en connais pas le comportement exact et j'ai peur que cela initialise ta variable, rendant de fait le isset() intra-fonction inopérant.
Une autre solution pourrait être de passer le résultat du isset en paramètre à ta fonction.
Dans le cadre de classes, il y a peut être moyen d'utiliser les méthodes magiques style __isset() et __unset().
La solution la plus accessible à mon sens reste de toujours initialiser ta variable à null en premier lieu, et comme ça elle existe quoi qu'il se passe. Acceptable ou non suivant ce que tu tentes de réaliser.
A voir, donc.
Marsh Posté le 30-08-2011 à 08:42:26
Merci pour tes réponses.
Je vais opter pour le moins de code, donc pour le résultat du isset.
Merci !
Marsh Posté le 29-08-2011 à 19:41:09
Bonjour !
Je développe un site plus ou moins important en Php + Doctrine et je suis face à un élément redondant.
Sur pas mal de pages, je récupère un élément de la base de données pour afficher son détail. Du coup à chaque fois, je fais un isset sur ma variable de retour et affiche un message comme quoi il y a un problème.
Le truc c'est que ça fait pas mal de répétition de code du genre :
Donc je pensais centraliser tout ça avec une fonction du style :
Comme vous en doutez, pour faire appel à ma fonction, j'utilise la variable donc je me retrouve avec une notice :
Notice: Undefined variable: myItem in...
Existe t-il un moyen plus élégant et fonctionnel ?
Message édité par alexandre_j le 30-08-2011 à 08:43:00