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 08/06/2008, 16h20   #1
Membre du Club
 
Inscription : août 2003
Messages : 133
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : août 2003
Messages : 133
Points : 46
Points : 46
Par défaut [POO] déclarer une variable objet

Bonjour,
j'aurais voulu savoir comment déclare t-on une variable de type objet ?
Merci

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
	include('DB/database.php') ;	
	
	class monApplication{
		
		private $statutConnection ;
		public database $database ;
		
				
		public function __construct(){
			$database = new database() ; // Crée une connexion avec la base de données
			$this->statutConnection =  $database->get_statutConnection() ;			
		}
		
		public function ajout_mac_nom($adrMAC,$nomPC){
			$sql = "" ;
			return $this->database->execRequete($sql) ;			
		}		
	}
?>
bdaboah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2008, 16h50   #2
Membre éclairé
 
Développeur Web
Inscription : septembre 2004
Messages : 352
Détails du profil
Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : septembre 2004
Messages : 352
Points : 396
Points : 396
Il n'y a pas de typage sur les propriétés. Il faut faire du Cast à la place.

Code :
$this->statutConnection = (database)$database->get_statutConnection() ;
Chengj est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2008, 18h08   #3
Membre du Club
 
Inscription : août 2003
Messages : 133
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : août 2003
Messages : 133
Points : 46
Points : 46
est-ce que (database)$database correspond à $database = new database() ?

Merci
bdaboah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2008, 18h14   #4
Rédacteur
 
Avatar de Yoteco
 
Alain Sahli
Ingénieur développement logiciels
Inscription : décembre 2004
Messages : 1 086
Détails du profil
Informations personnelles :
Nom : Alain Sahli
Âge : 25

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : décembre 2004
Messages : 1 086
Points : 1 479
Points : 1 479
Non pas du tout.

(database)$database
ça c'est du cast

Tandis que là tu fais une instantiation : $database = new database();

$database doit être instantcié avant de pouvoir être casté. Ce sont deux applications différentes.
Yoteco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2008, 18h21   #5
Membre du Club
 
Inscription : août 2003
Messages : 133
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : août 2003
Messages : 133
Points : 46
Points : 46
d'accord, si je comprend bien c'est mon application qui est mal construite ^^
ca se fait pas d'instancier un objet d'une classe dans le constructeur d'une autre et de mettre cet objet dans une variable.
Je vais modifier cela
Merci
bdaboah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2008, 18h54   #6
Rédacteur
 
Avatar de Yoteco
 
Alain Sahli
Ingénieur développement logiciels
Inscription : décembre 2004
Messages : 1 086
Détails du profil
Informations personnelles :
Nom : Alain Sahli
Âge : 25

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : décembre 2004
Messages : 1 086
Points : 1 479
Points : 1 479
Si bien sûr que ça se fait ! Mais il n'y a pas de typage objet en PHP. Tu peux faire ta classe comme ça :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
    include('DB/database.php') ;    
 
    class monApplication{
 
        private $statutConnection ;
        private $database ;
 
 
        public function __construct(){
            $this->database = new database() ; // Crée une connexion avec la base de données
            $this->statutConnection =  $this->database->get_statutConnection() ;            
        }
 
        public function ajout_mac_nom($adrMAC,$nomPC){
            $sql = "" ;
            return $this->database->execRequete($sql) ;            
        }        
    }
?>
Et comme tu peux le voir c'est pas un "type" spécial pour stocker la référence d'un objet...
Yoteco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2008, 19h03   #7
Membre du Club
 
Inscription : août 2003
Messages : 133
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : août 2003
Messages : 133
Points : 46
Points : 46
je te remercie, ca fonctionne parfaitement.
Bonne soirée, Nicolas
bdaboah 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 02h13.


 
 
 
 
Partenaires

Hébergement Web