Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/09/2007, 02h21   #1
Membre habitué
 
Avatar de nico le terrible
 
Inscription : novembre 2004
Messages : 163
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 163
Points : 107
Points : 107
Par défaut [POO] PHP 4.x : chargement de fonction dynamiquement

Bonjour à tous,
Je voudrais avoir une class qui contient 2 types de fonctions... C'est à dire que les fonctions font la même chose mais pas pareil, et je voudrais que en fonction du var passé dans le constructeur, il insère le premier type de fonction ou le second type... Un petit bout de code pour être plus clair ^^

Code :
1
2
3
4
5
6
7
<?php
class Core {
function Core($version) {
if($version==1) => type 1
if($version==2) => type 2
}
?>
Voilà merci d'avance à ceux qui m'aideront !
nico le terrible est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/09/2007, 11h03   #2
Modérateur
 
Avatar de Bisûnûrs
 
Josselin
Développeur Web
Inscription : janvier 2004
Messages : 9 050
Détails du profil
Informations personnelles :
Nom : Josselin
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : janvier 2004
Messages : 9 050
Points : 12 181
Points : 12 181
Citation:
Envoyé par nico le terrible Voir le message
C'est à dire que les fonctions font la même chose mais pas pareil

Explique mieux parce que là ...
Citation:
Envoyé par nico le terrible Voir le message
Je voudrais avoir une class qui contient 2 types de fonctions
Qu'entends-tu par "type de fonction" ?
Bisûnûrs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/09/2007, 12h09   #3
Membre habitué
 
Avatar de nico le terrible
 
Inscription : novembre 2004
Messages : 163
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 163
Points : 107
Points : 107
Ba je doit gérer différentes versions avec différentes fonctions mais les deux versions ne marchent pas pareil...
Par exemple, la connection est différente : v2_connect() et v3_connect(), ce sont deux fonctions qui font la même chose mais différement, et au lieu que la personne doivent taper v2 ou v3 en fonction de ce qu'il veut, j'aimerai que les deux fonctions s'apelle connect(), mais que en fonction d'une variable passer dans la déclaration de la class elle charge une lib ou l'autre...

Est ce plus clair xD ?
nico le terrible est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/09/2007, 22h41   #4
Modérateur
 
Avatar de mathieu
 
Inscription : juin 2003
Messages : 4 893
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 4 893
Points : 4 466
Points : 4 466
tu peux faire une méthode de ce genre pour construire l'objet
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
class Core
{
    function & creerObjet($version)
    {
        $tab = array(
            'v2' => 'CoreV2',
            'v3' => 'CoreV3',
        );
 
        return new $tab[$version]();
    }
}
 
class CoreV2 extends Core
{
    function connect()
    {
        echo "connect v2\n";
    }
}
 
class CoreV3 extends Core
{
    function connect()
    {
        echo "connect v3\n";
    }
}
 
 
$objet =& Core::creerObjet('v2');
 
$objet->connect();
__________________
Modérateur PHP
mathieu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/09/2007, 18h17   #5
Membre habitué
 
Avatar de nico le terrible
 
Inscription : novembre 2004
Messages : 163
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 163
Points : 107
Points : 107
Merci beaucoup c'est parfait :p
nico le terrible est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h07.


 
 
 
 
Partenaires

Hébergement Web