Bonsoir à tous,
ba voilà après 2 ans que je traîne ici, je décide enfin à me lancer dans la création de class et d'objet.
voici mon premier essaie, qui n'est certe pas catastrophique car je n'ai pas de message d'erreur, mais qui n'est pas fonctionnel
pourriez vous me dire ce que je n'ai pas compris
<?php
/////activation protection page appelé/////
define('PROTECTIONINCLUDE', TRUE);
/////insertion des base de donnée/////
include ($_SERVER"DOCUMENT_ROOT"].'/v501/config/config.php');
/**
* gestion du pilote
*/
class pilote
{ public $pilote;
public function test_create()
{
echo "string";echo "<br>";
}
public function gen_data_s($mail,$type,$bd)
{
echo "mail: ".$mail." type: ".$type;echo "<br>";
$table_dest='enr_'.$type.'_pilots';
$sql="SELECT * FROM $table_dest WHERE `email` ='$mail'";
$req = $bd->query($sql);
$pilote= $req->fetch(PDO::FETCH_ASSOC);
echo "vardump";var_dump($pilote);echo "<br>";
return $pilote;
}
}
function create_pilote($mail,$type,$bd)
{
$table_dest='enr_'.$type.'_pilots';
$sql="SELECT pilotid FROM $table_dest WHERE `email` ='$mail'";
$req = $bd->query($sql);
$pilote= $req->fetch(PDO::FETCH_ASSOC);
global ${'t_'.$type.'_pilote_'.$pilote[pilotid]};
${'t_'.$type.'_pilote_'.$pilote[pilotid]} = new pilote();
${'t_'.$type.'_pilote_'.$pilote[pilotid]}->test_create();
${'t_'.$type.'_pilote_'.$pilote[pilotid]}->gen_data_s($mail,$type,$bd);
}
create_pilote(' *******','cil',$DBPDO1);
echo "<br>";var_dump($t_cil_pilote_1);echo "<br>";
?>
les echo ou var_dumps de la ligne 16,20,25 sont correct
mais en ligne 48 la variable est bien crée mais elle n'est pas remplis du tout avec le return de la ligne26.
Comment dois je m'y prendre?
Non, $pilote_array = array(); est correcte
Mais dans ce code la valeur de retour de gen_data_s() n'est sauvegardé nul part.
$pilote_array$type]$pilote"pilotid"]] = new pilote(); // nouveau
$pilote_array$type]$pilote"pilotid"]]->test_create(); // nouveau
$pilote_array$type]$pilote"pilotid"]]->gen_data_s($mail,$type,$bd); // nouveau
Essaye avec ceci :
$pilote_array$type]$pilote"pilotid"]] = new pilote(); // nouveau
$pilote_array$type]$pilote"pilotid"]]->test_create(); // nouveau
$pilote_array$type]$pilote"pilotid"]] = $pilote_array$type]$pilote"pilotid"]]->gen_data_s($mail,$type,$bd); // nouveau
ok je viens de tester et malheureusement cela ne marche pas, je pose juste une question car je ne connais pas, mais normalement
au lieux de
$pilote_array = array(); // nouveau
ça ne devrais pas être
public $pilote_array = array(); // nouveau
afin de permettre la sortie des valeurs?
ok, pardon pour ma question, pour ce qui est de la sauvegarde, c'était effectivement ça merci beaucoup.
Un exemple avec une variable "public" dans une classe
<?php
Class Test
{
public $variable = "Le contenu de ma variable";
}
$test = new Test();
echo $test->variable; // Ceci affichera : Le contenu de ma variable