Bonjour à tous,

Je suis en train de coder en PHP et je me rend compte que je ne sais pas s'il est possible d'envoyer que certain arguments !

Pour le thread, imaginons que je travaille sur une fonction qui gèrerait des images :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
<?php
function image($nom='noname', $type='png')
{
     // content
     echo $nom.".".$type."<br/>";
}
?>
Le principe maintenant serait de lancer la fonction en définissant $type mais en laissant $nom par defaut..

J'ai essayer comme d'autre langage à lancer la fonction de cette manière :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
<?php
image($type="bmp");
?>

Mais PHP le comprend en créant une variable $type dans ce bloc, et envoit la valeur (qui sera interprété par le premier argument)...

Un petit exemple pour comprendre :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
<?php
image($type="bmp");
echo $type;
?>
Sortie :
bmp.png
bmp

Quelqu'un sait si c'est possible ??! Je me dis que PHP à intégré une autre façon pour faire ça.

Pour essayer de faire un rendu à peut près identique je pensais ne mettre qu'un seul argument [Array] avec des clés bien défini puis testé les valeurs rentrés, les autres seront rajouté avec les valeur par défaut.

Exemple :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
function image($arg = array() )  //  si aucun argument on prend un tableau vide
{
     // valeur par defaut
 
     $defaut = array( 'nom'=>'noname', 
                      'type'=>'png');     // liste des valeurs par defaut
 
     $array = array_merge($defaut, $arg);
 
     // content
 
     echo $array['nom'].".".$array['type']."<br/>";
}
 
image();
image(array('type'=>'bmp'));
image(array('nom'=>'truc'));
image(array('nom'=>'truc', 'type'=>'bmp'));
?>
Sortie :
noname.png
noname.bmp
truc.png
truc.bmp
Quelqu'un aurait une autre idée ? Ou une meilleur solution ?

Merci à tous !