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?

4 réponses


jo-jo-123
Réponse acceptée

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
flo3376
Auteur

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?

flo3376
Auteur

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