Fonction. Cas spécial avec arguments facultatifs. Que faire ? :/ - PHP - Programmation
Marsh Posté le 23-09-2005 à 21:44:01
Je ne crois pas que PHP permette de sauter des arguments, c'est comme en C/C++, tu charges les arguments linéairement et les arguments par défaut sont à la fin.
En python, c'est possible par contre
Marsh Posté le 23-09-2005 à 22:05:54
Arf c'est con car car les arguments vide peuvent dans mon cas peuvent varier donc peut importe l'ordre..., c lourd, bon ben va falloir coder a la porc tant pis
Merci pour ta réponse entk
A+
Marsh Posté le 23-09-2005 à 22:10:11
au lieu de passer des arguments normaux, essaie en passant un array
genre au lieu d'appeler foo(a, b, c) tu appelles
foo(array("a"=>a,"b"=>b,"c"=>c)) |
et dans "foo", tu testes si les clés "a", "b" et "c" sont présentes et tu réagis en concéquence.
C'est pas vraiment propre, mais bon
Marsh Posté le 23-09-2005 à 22:15:29
Salut oui il ya plein de possibilités pour contourner mais ca reste du code un peu trop porc a mon gout, enfin tant pis si ya pas d'autres moyen
^^
Merci quand même
Marsh Posté le 23-09-2005 à 22:15:49
Un truc comme ça :
Code :
|
Mais c'est si vraiment y'a pas le choix.
Marsh Posté le 23-09-2005 à 22:28:09
il n'y a pas d'opérateur ternaire en PHP
(et ton truc ça fonctionne pas, si il donne 2 valeurs sur 3 l'array va être peuplé, donc l'array par défaut ne sera pas utilisé et il l'aura dans le cul)
[troll]C'est con quand même, en python il aurait suffit de faire
>>> def foo(a=1, b=2, c=3): |
[/troll]
Marsh Posté le 23-09-2005 à 22:32:49
masklinn a écrit : il n'y a pas d'opérateur ternaire en PHP |
Là ça obligerait à tout faire en même temps, affichage et vérification de l'égalité avec null, bof. Surtout si y'avait + de valeurs.
Citation : |
Ben ouais faut remplir avec des null.
M'enfin c'était que le concept là, après on l'arrange comme on veut.
Marsh Posté le 23-09-2005 à 22:39:36
Dtf suffit de rajouter un isset.
Code :
|
Marsh Posté le 24-09-2005 à 14:07:52
Gat$ a écrit : c lourd, bon ben va falloir coder a la porc tant pis |
boarf, c un ptit peu lourd mais
Code :
|
effectivement, ça fait un peu répétition mais
je trouve pas ça si "porcasse" que ça
--
Ah oui, au passage :
Masklinn a écrit : "il n'y a pas d'opérateur ternaire en PHP"
??? mais ça alors, qu'est-ce que c'est quoi donc ???
Code :
|
a+
shakpana
Marsh Posté le 24-09-2005 à 15:40:25
shakpana a écrit : Masklinn a écrit : "il n'y a pas d'opérateur ternaire en PHP" |
Je crois que t'as raté le fait que c'était une question
Marsh Posté le 24-09-2005 à 15:44:23
masklinn a écrit : Je crois que t'as raté le fait que c'était une question |
héhé, autant pour moi Masklinn ...
n'avait point vu de '?'
[edit pour typo]
Marsh Posté le 24-09-2005 à 15:51:04
shakpana a écrit :
|
On peut même faire des if(!$a) si on veut faire court.
Marsh Posté le 24-09-2005 à 15:56:32
kalex a écrit : On peut même faire des if(!$a) si on veut faire court. |
moui, mais tu riques d'avoir des soucis si
Code :
|
mais ça, faut savoir ce qui est acceptable comme paramètres pour la fonction ...
l'interêt est que NULL est plus 'rare' comme parèmetre que '' ou 0 ...
m'enfin ...
Marsh Posté le 24-09-2005 à 16:04:47
C'est vrai. J'ai mis ça parce que j'ai une fonction qui ressemble à ça, mais pour des variables str.
Sinon, on peut aussi faire $var === NULL.
Marsh Posté le 24-09-2005 à 16:06:40
toi, t'aimes pas is_null()
--
just kidding, tu as raison on évite de faire appel à une fonction
Marsh Posté le 23-09-2005 à 20:54:48
Bonjour,
il ya un truc que je n'arrive pas a faire, et je ne comprend meme pas pourquoi ca n'est pas possible
VOila mon code :
Donc on voit que j'utilise des arguments facultatifs.
Et malgrés que l'ont passé la valeur NULL a ne prend pas sa valeur par defaut.
Le seul moment ou a prend sa valeur par defaut c si on fait
echo foo();
par exemple !
Mais ca pose problème quand on veut definir une valeur differente aux arguments qui suivent ! On ne peut pas faire foo( , 5, 6); --> parse error
Donc voila si quelqu'un a une solution a ce prob ?
Merci ^^
---------------
Recherche de partenaires pvp dans World of Warcraft :: http://www.wowteamfinder.com