begin process at 2012 05 31 04:34:09
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

Class et Objet ( POO )

 > 

PHP4.3.10 :


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

PHP4.3.10 :

vendredi 7 avril 2006 à 11:32:46 | PHP4.3.10 :

CMatt

Bonjour à tous,
je rencontre quelques difficultés à faire de la POO avec PHP4.
Voici mon objet :
    // Implémente une planète
    class Planete
    {
        // Contient le nom
        var $Nom;
        // Contient l'alliance
        var $Alliance;
        // Contient le joueur
        var $Joueur;
        // Contient le numéro
        var $Numero;
        // Contient le type
        var $Type;
        // Contient le système
        var $Systeme;
    
        // Initialise une nouvelle planète
        // $pXml : noeud Xml sous-jacent (optionnel)
        function Planete( $pXml = null )
        {
            // Si le système est valide
            if( $pXml!=null && is_a( $pXml, "XmlElement" ) && $pXml->Nom=="planete" )
            {
                // Configure la planète
                $this->Nom = $pXml->Valeur;
                $this->Alliance = $pXml->Attributs["alliance"]->Valeur;
                $this->Joueur = $pXml->Attributs["joueur"]->Valeur;
                $this->Numero = (int) ($pXml->Attributs["numero"]->Valeur);
                $this->Type = $pXml->Attributs["type"]->Valeur;
                $this->Systeme = null;
            }//if
            // Sinon
            else
            {
                // Initialise la planète
                $this->Nom = "";
                $this->Alliance = "";
                $this->Joueur = "";
                $this->Numero = 0;
                $this->Type = "n";
                $this->Systeme = null;
            }//else
        }//constructeur
        
    }//classe planete

Et voici un petit bout de code qui donne des résultats inattendus :
    // Initialise de nouvelles planètes
    $pPlanete1 = new Planete();
    $pPlanete2 = new Planete();

    print( "Instances planètes : contenus ".($pPlanete1==$pPlanete2 ? "identiques" : "différents")." et références ".($pPlanete1===$pPlanete2 ? "identiques" : "différentes").".<br />\r\n" );

et le résultat est :
Instances planètes : contenus identiques et références identiques.

Le contenu des deux instances est strictement le même.
Dans la doc PHP, il est indiqué que l'opérateur "===" compare les références et non les contenus des objets. Or j'ai bien là 2 références distinctes il me semble, non?
Ou alors existe-t-il une autre méthode de comparer des références à des objets?

Toute aide sera la bienvenue.

@++
vendredi 7 avril 2006 à 11:46:11 | Re : PHP4.3.10 :

CMatt

Juste une petite correction à ce que j'ai dit précédement : l'opérateur "===" compare le contenu et le type, et non pas des références.
Mon problème se résume donc à une solution qui me permettera de comparer des références.
vendredi 7 avril 2006 à 12:14:12 | Re : PHP4.3.10 :

FhX

Bah :
$pPlanete1 = $pPlanete2 ... normal, vu que toutes tes propriétés valent la même chose de chaque coté !
vendredi 7 avril 2006 à 12:17:50 | Re : PHP4.3.10 :

CMatt

Outre la valeur des propriétés, ce qui m'intéresse, c'est de savoir si j'ai à faire à une seule et même instance (un même objet en mémoire) comme la méthode statique bool Object.Equals( object obj ) en C#..
vendredi 7 avril 2006 à 14:06:25 | Re : PHP4.3.10 :

malalam

Administrateur CodeS-SourceS

Hello,

je ne pense pas que tu puisses déterminer ça en php 4.

En php5, :

<?php
class a {
 var $test='test';
 function a () {
 }
}
$a = new a;
$b = & $a;
$c = new a;

echo  intval (($a === $c)); // affiche 0

echo  intval (($a === $b)); affiche 1
?>


vendredi 7 avril 2006 à 14:19:33 | Re : PHP4.3.10 :

CMatt

Merci, après quelques recherches, il me semble aussi que PHP4 est plutôt limite pour tout ce qui est POO.
En effet, je suis tombé sur un site où il était dit que l'opérateur "===" comparait le contenu et le type seulement en PHP4, alors que en PHP5, il compare les références, du moins pour les objets il me semble.

@++


Cette discussion est classée dans : var, contient, alliance, planete, pxml


Répondre à ce message

Sujets en rapport avec ce message

Couleur de mots cles dans une var [ par Arnaud ] Bonjour ke voulais savoir comment on fait pour changer la couleur des mots cles dans un var par ex print je voudrais qu'il soit bleu mais si je met // Parametre de ma classe connexion et connexion/deconnexion [ par sebos63 ] Bonjour, 1. J'ai une classe de connexion et je souhaiterais savoir où il est judicieux de spécifier les paramètres d'une connexion. (Dans mon construc Tableau en php(débutant) [ par iomega ] Bonjour à tous je suis débutant en php et je voudrai manipuler un tableau voici mon problèmele tableau $tab100 contient des valeurs 0.125,0.25 etc...j arguments dans URL [ par ctof3552 ] slt a todos !!une petite question de newbie en php... lors d'une redirection, quand on passe des valeurs dans une url (monurl.php?var=value) est il po Je trouve pas l'erreur sur mon script [ par Akash ] Salut à tous j'espère que vous pourrez m'aider. Voila le problème :Pour mon script de calendrier evenementiel j'ai besoin d'afficher des évènements pa Lycos et POST [ par perig ] Bonjours Voila sous lycos je n'arrive pas a créer un form avec pour méthode "post", avec "get" ça marche très bien je récupère bien mes valeurs mais p Problème session_start(); [ par rems02 ] Je n'arrive pas à ouvrir une session.Si j'envoie ça au serveursession_start();session_register("login");session_register("pass");$nick=$HTTP_SESSION_V requete [ par poupinette10 ] Voila jai un formulaire avec 2 listes déroulantesla premiere liste déroulante contient des matiereset la deuxieme contient des fichiers!je voudrais en adresse invariable [ par mikedimoi ] Connais po grand chose!désolé!!Bonjour!J'ai fait un script mais maintenant, je bloque.Si:...script language="javascript">function fRedir(){ var FTPUrl url & variable [ par fab_59 ] Est il possible, de modifier la valeur d'une variable d'un doc php, en mettant dans l'url un code specifique?url?$var=prenom ????c( pour rediriger un


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,577 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales