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 27/12/2007, 09h33   #1
Membre du Club
 
Inscription : décembre 2005
Messages : 113
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 113
Points : 57
Points : 57
Par défaut [POO] Instanciation dynamique

Bonjour,

POur créer un objet on utilise la forme :

Code :
1
2
 
$obj = new MaClass ;
Est ce que "MaClass" peut être passé dynamiquement ?
Al3x est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2007, 11h00   #2
Modérateur
 
Avatar de Nesmontou
 
Homme Benjamin PREVOT
Architecte de système d'information
Inscription : septembre 2004
Messages : 1 571
Détails du profil
Informations personnelles :
Nom : Homme Benjamin PREVOT
Âge : 30
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Architecte de système d'information
Secteur : Finance

Informations forums :
Inscription : septembre 2004
Messages : 1 571
Points : 2 513
Points : 2 513
Salut, tu peux utiliser l'API de réflexion de PHP5 :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
class MyClass {
  public function sayHello() {
    echo 'Hello from MyClass';
  }
}
 
class OtherClass {
  public function sayHello() {
    echo 'Hello from OtherClass';
  }
}
 
$reflect = new ReflectionClass('MyClass');
$object = $reflect->newInstance();
$object->sayHello(); // Hello from MyClass
 
$reflect = new ReflectionClass('OtherClass');
$object = $reflect->newInstance();
$object->sayHello(); // Hello from OtherClass
?>
Bon développement
__________________
Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement. Albert EINSTEIN

F.A.Q. : Java, PHP, (X)HTML / CSS

N'oubliez pas de cliquer sur le bouton Résolu en bas de page quand vous avez obtenu une solution à votre problème
Nesmontou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2007, 11h25   #3
Membre du Club
 
Inscription : décembre 2005
Messages : 113
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 113
Points : 57
Points : 57
nickel !
Al3x est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2007, 16h12   #4
Nouveau Membre du Club
 
Erick
Inscription : décembre 2007
Messages : 81
Détails du profil
Informations personnelles :
Nom : Erick
Âge : 27
Localisation : Canada

Informations forums :
Inscription : décembre 2007
Messages : 81
Points : 32
Points : 32
Normalement tu peux instancier une classe à partir d'une string, non ?

Code :
1
2
3
4
5
 
class machin { public function __construct($var) { echo $var; } }
 
$class = 'machin';
$obj = new $class('hello world');
Chasseur d'étoiles est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2007, 17h09   #5
Membre du Club
 
Inscription : décembre 2005
Messages : 113
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 113
Points : 57
Points : 57
et bien justement je ne sait pas ... je vais essayer ca
Al3x est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2008, 00h09   #6
Nouveau Membre du Club
 
Avatar de eexit
 
Étudiant
Inscription : juillet 2007
Messages : 61
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juillet 2007
Messages : 61
Points : 35
Points : 35
Citation:
Envoyé par Chasseur d'étoiles Voir le message
Normalement tu peux instancier une classe à partir d'une string, non ?

Code :
1
2
3
4
5
 
class machin { public function __construct($var) { echo $var; } }
 
$class = 'machin';
$obj = new $class('hello world');
Bonsoir,

En effet. Cela fonctionne parfaitement

Bonne continuation.
eexit 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 16h52.


 
 
 
 
Partenaires

Hébergement Web