Problème portée variables en PHP
Obzen
-
Obzen -
Obzen -
Bonjour à tous,
J'ai un soucis que j'essaie de résoudre depuis plus de deux heures, je crois que je vais aller me pendre si personne ne m'explique.
J'ai simplifié ici le problème. J'ai un fichier test.php avec une classe test et un fichier main.php. Je voudrais savoir, dans l'exemple ci-dessous, pourquoi rien ne s'affiche à l'appel de la fonction __toString(), comme si la variable '$tab' ne contenait rien du tout :
test.php :
<?php
class test{
private $tab;
public function __test(){
global $tab;
$tab = array();
$this->tab[0][0] = 2;
$this->tab[0][1] = 3;
}
public function __toString(){
global $tab;
$t='<table border="1" id="tableau">';
$t .= '<tr><td>'.$this->tab[0][0].'</td><td>'.$this->tab[0][1].'</td></tr>';
$t .= '</table>';
return $t;
}
}
?>
Et le fichier main.php contient simplement :
<?php
require_once("test.php");
$v = new test();
echo $v;
?>
Merci de m'aider...
J'ai un soucis que j'essaie de résoudre depuis plus de deux heures, je crois que je vais aller me pendre si personne ne m'explique.
J'ai simplifié ici le problème. J'ai un fichier test.php avec une classe test et un fichier main.php. Je voudrais savoir, dans l'exemple ci-dessous, pourquoi rien ne s'affiche à l'appel de la fonction __toString(), comme si la variable '$tab' ne contenait rien du tout :
test.php :
<?php
class test{
private $tab;
public function __test(){
global $tab;
$tab = array();
$this->tab[0][0] = 2;
$this->tab[0][1] = 3;
}
public function __toString(){
global $tab;
$t='<table border="1" id="tableau">';
$t .= '<tr><td>'.$this->tab[0][0].'</td><td>'.$this->tab[0][1].'</td></tr>';
$t .= '</table>';
return $t;
}
}
?>
Et le fichier main.php contient simplement :
<?php
require_once("test.php");
$v = new test();
echo $v;
?>
Merci de m'aider...
A voir également:
- Problème portée variables en PHP
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Augmenter la portée d'un signal bluetooth - Forum Bluetooth
- Alcatel f860 hors portée - Forum telephonie fixe
- Portee wifi - Guide
1 réponse
Retire les deux __ devant ton constructeur test.
Ou alors remplace test par constructor.
Pas besoin de mettre global $tab; vu qu'il appartient à la classe test.
Quand tu fait un "echo $v;" tu n'affiche que l'objet, hors il vaut mieux afficher un champ.
Pour ce faire met par exemple $tab en public et tu pourra faire ceci :
echo $v->tab;
Bonne chance.
Ou alors remplace test par constructor.
Pas besoin de mettre global $tab; vu qu'il appartient à la classe test.
Quand tu fait un "echo $v;" tu n'affiche que l'objet, hors il vaut mieux afficher un champ.
Pour ce faire met par exemple $tab en public et tu pourra faire ceci :
echo $v->tab;
Bonne chance.
Obzen
Merci... !