une question qui pourrait sembler de débutant, mais je me la pose depuis
longtemps...
lorsqu'on déclare des variables (attributs) dans une classe, peut-on les
utiliser simplement (sans les passer en paramêtre) dans les fonctions de
la classe?
Par exemple:
<?
class test {
var $disp = "toto";
function test() {
echo $this->disp;
}
}
?>
Ceci ne semble pas fonctionner (Notice: Undefined variable: this in...),
je présume que je dois donc faire:
function test($disp) {
$this->disp = $disp;
}
Je précise que je suis en php 4 au cas où...
--
Astuces pour webmasters: http://www.crazycat.info
Tchat francophone: http://www.crazy-irc.net
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Bruno Desthuilliers
CrazyCat wrote:
Bonjour ici...
une question qui pourrait sembler de débutant, mais je me la pose depuis longtemps...
lorsqu'on déclare des variables (attributs) dans une classe, peut-on les utiliser simplement (sans les passer en paramêtre) dans les fonctions de la classe?
s/fonctions/methodes/
Normalement, oui. C'est même un peu le but de la manoeuvre, en fait...
Par exemple: <? class test { var $disp = "toto"; function test() { echo $this->disp; } } ?>
Semble correct pour la définition. Tu l'utilises comment, maintenant ?
Ceci ne semble pas fonctionner (Notice: Undefined variable: this in...),
Ok, je suppose que tu essaie d'appeler la méthode directement sur la classe elle-même, ie
test::test();
La variable $this n'existe que dans une instance de la classe (un objet).
essaie plutôt:
$t = new test(); $t->test();
NB : php4 ne supporte pas la notion d'"attributs de classe" (attributs partagés par toutes les instances d'une classe).
-- bruno desthuilliers python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for p in ''.split('@')])"
CrazyCat wrote:
Bonjour ici...
une question qui pourrait sembler de débutant, mais je me la pose depuis
longtemps...
lorsqu'on déclare des variables (attributs) dans une classe, peut-on les
utiliser simplement (sans les passer en paramêtre) dans les fonctions de
la classe?
s/fonctions/methodes/
Normalement, oui. C'est même un peu le but de la manoeuvre, en fait...
Par exemple:
<?
class test {
var $disp = "toto";
function test() {
echo $this->disp;
}
}
?>
Semble correct pour la définition. Tu l'utilises comment, maintenant ?
Ceci ne semble pas fonctionner (Notice: Undefined variable: this in...),
Ok, je suppose que tu essaie d'appeler la méthode directement sur la
classe elle-même, ie
test::test();
La variable $this n'existe que dans une instance de la classe (un objet).
essaie plutôt:
$t = new test();
$t->test();
NB : php4 ne supporte pas la notion d'"attributs de classe" (attributs
partagés par toutes les instances d'une classe).
--
bruno desthuilliers
python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for
p in 'onurb@xiludom.gro'.split('@')])"
une question qui pourrait sembler de débutant, mais je me la pose depuis longtemps...
lorsqu'on déclare des variables (attributs) dans une classe, peut-on les utiliser simplement (sans les passer en paramêtre) dans les fonctions de la classe?
s/fonctions/methodes/
Normalement, oui. C'est même un peu le but de la manoeuvre, en fait...
Par exemple: <? class test { var $disp = "toto"; function test() { echo $this->disp; } } ?>
Semble correct pour la définition. Tu l'utilises comment, maintenant ?
Ceci ne semble pas fonctionner (Notice: Undefined variable: this in...),
Ok, je suppose que tu essaie d'appeler la méthode directement sur la classe elle-même, ie
test::test();
La variable $this n'existe que dans une instance de la classe (un objet).
essaie plutôt:
$t = new test(); $t->test();
NB : php4 ne supporte pas la notion d'"attributs de classe" (attributs partagés par toutes les instances d'une classe).
-- bruno desthuilliers python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for p in ''.split('@')])"