return: plusieurs valeurs

Eléphant du PHP | 85 Messages

08 juin 2006, 15:17

lut,
pour eviter des warning a tout bout de champs j'ai enlevé tous les
echo, print etc pour laisser du php uniquement. Il se trouve que ca marche bien mais la se pose un hic.
voila une fonction d'affichage d'année
<?

function return_menu_annee(){
$time=date('Y');
$annee_courante=substr($time, 2);


$output.="<select NAME=\"popup\" style=\"background-color:orange; color:white;\" size=\"1\">";
$output.="<option value=\"x\">choix année</option>";

for($i=2; $i<=$annee_courante; $i++){
	$output.= "<option value=\"0".$i."\">200".$i."</option>";
}
 
$output.="<input type=\"submit\" value=\"ok\">";
$output.="</select>";	


return $output;
}

?>
comme vous pouvez le voir je renvoi $output ce qui me permet l'affichage.
Maintenant je voudrai en plus retourner $i. je fais comment ?
Peu t on retourner plusieurs choses a la fois?
Merci
la fantaisie, oui...mais toujours avec un peu de rigueure :wink:

Eléphant du PHP | 451 Messages

08 juin 2006, 15:30

A première vue, je renverrais un tableau :
return array($output, $i); 
puis je récupérerais avec :
list($output, $i)=return_menu_annee();
Ca devrait marcher...
Jpaul
J'essaye d'aider : parfois je fais des erreurs, on me les corrige et j'apprends un peu plus. Super ce forum :)

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

08 juin 2006, 16:10

J'ai 2 petites remarques sur ton code :

1. tu veux récupèrer l'année sous forme 99 tu dois utiliser la forme date("y") et non "Y" majuscule pour ainsi éviter le "substr"
correction:
$annee_courante= date("y");
2. pourquoi tu fige le mot '200' pour afficher les années de 2002 à 200i et si $i est 10 tu auras l'année '20010'
Tu vas me dire d'ici 2010 ton programme ne sera plus :wink:
Mais ce n'est pas un justificatif pour programmer comme ça

Proposition:
<?php
function return_menu_annee(){ 
//Année format 99
$annee_courante = date("y"); 


$output.="<select NAME=\"popup\" style=\"background-color:orange; color:white;\" size=\"1\">"; 
$output.="<option value=\"x\">choix année</option>"; 

for($i=2; $i<=$annee_courante; $i++){
	//afficher le zéro non significatif dans l'année 99
	$année_format_09 = str_pad($i, 3-strlen($i), "0", STR_PAD_LEFT); //str_pad(chaine, nbre_repétitions, chaine à répéter, sens)
    $output.= "<option value=\"".$année_format_09."\">".(2000+$i)."</option>"; 
} 

$output.="<input type=\"submit\" value=\"ok\">"; 
$output.="</select>";     


return array($output, $i); 
}
?>
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Eléphant du PHP | 85 Messages

09 juin 2006, 11:46

excuser mon retard et merci pour ces réponses :D
la fantaisie, oui...mais toujours avec un peu de rigueure :wink: