Probleme de class

Résolu
damien174 Messages postés 78 Date d'inscription jeudi 4 janvier 2001 Statut Membre Dernière intervention 2 mars 2012 - 2 nov. 2005 à 22:15
monoceros01 Messages postés 420 Date d'inscription vendredi 28 novembre 2003 Statut Membre Dernière intervention 20 mars 2006 - 3 nov. 2005 à 08:41
bonjour, je voudrai créer une classe pour dessiné des graph
et j'ai un petit soucis, lorsque j'appelle la fonction init_graph ca marche mais lorsque j'appelle trace_graph il me marque un message d'erreur : <!--StartFragment --> Fatal error: Call to a member function on a non-object in W:\www\Cyberstation\test.php on line 11 ce ki correspond a la ligne : $graph->trace_graph();

voici mon code de ma page principale :
include ("cybergraph/cls_graph.class.php");
$graph = new CyberGraph();

$graph->init_graph();
$graph->trace_graph();

et la page de la class :
class CyberGraph {
function init_graph()
{
$this = imagecreate(500,500);
$vert = imageColorAllocate($this,0,157,160);
imageFilledRectangle($this,0,10,500,10,$vert);
}
function trace_graph()
{
imageJpeg($this);
}
}

voila pourquoi ca fait ca et comment reglé le problème
merci
cyberdam

3 réponses

monoceros01 Messages postés 420 Date d'inscription vendredi 28 novembre 2003 Statut Membre Dernière intervention 20 mars 2006
3 nov. 2005 à 04:00
Je ne suis pas sur de ce que je vais dire, mais a mon humble avis, utiliser la variable $this dans une classe est une mauvaise idée. $this est une variable réservée a une utilisation précise il me semble.

Essaye plutôt ça :



<?php

class CyberGraph

{

var $img;

function init_graph()

{

$this->img = imagecreate(500,500);

$vert = imageColorAllocate($this->img,0,157,160);

imageFilledRectangle($this-img,0,10,500,10,$vert);

}

function trace_graph()

{

imageJpeg($this->img);

}

}

?>



Personnellement c'est comme cela que je ferais =)

$this fait en fait référence à
l'instance de chacun des objets que tu vas instancier via cette classe
(grace à l'opérateur new), et ce qu'il y a au bout de la flêche -> à un paramètre (une variable) ou une méthode (une fonction) de cet objet.



Il est possible que cela règle ton problème =)
3
damien174 Messages postés 78 Date d'inscription jeudi 4 janvier 2001 Statut Membre Dernière intervention 2 mars 2012
3 nov. 2005 à 08:39
slt merci ca marche :)



cyberdam
0
monoceros01 Messages postés 420 Date d'inscription vendredi 28 novembre 2003 Statut Membre Dernière intervention 20 mars 2006
3 nov. 2005 à 08:41
C'était donc ça =)

De rien ;)
0
Rejoignez-nous