2009-12-08 13 views
0

voirpourquoi cette classe PHP ne fonctionne pas

class Browser{ 

var $type = ""; 

public function e(){ 

return $this->type; 
} 

} 

lorsque l'utilisation

$b = new Browser('human'); 

echo $b->e(); 

et i Maen caractères apparaissent pas et je fais humain comme nouveau ArchiveBrowser (le type var);

Répondre

2
  • Vous ne pouvez pas utiliser "echo" comme nom de fonction.
  • Vous créez un constructeur. Essayez ceci

.

class Browser{ 
    var $type = ""; 

    function __construct($type){ 
     $this->type = $type; 
    } 

    public function echo_type(){ 
     return $this->type; 
    } 
} 
+0

vraiment merci son travaillé –

+0

Impossible d'obtenir la mise en forme de travailler. Quelqu'un peut m'aider s'il vous plaît? – markmywords

+0

ce n'est pas important ses travaux grâce –

1

echo est un mot réservé. Votre classe est également appelée Browser mais vous instanciez ArchiveBrowser.

+0

je sais, mais ce n'est pas la vraie classe ce un exemple du problème –

+1

Encore une raison valable pour que votre classe ne fonctionnait pas. –

0

ArchiveBrowser doit étendre le navigateur ou Vous devez utiliser Browser au lieu de ArchiveBrowser.

1
class Browser 
{ 
    // Always declare whether a variable is public or private 
    private $type = null; 
    // A constructor - gets excecuted every time you create a class 
    public function __construct($type) 
    { 
     // Note that $type here is not the same as $type above 
     // The $type above is now $this->type 

     $this->type = $type; // Store the type variable 
    } 

    // Your function e() 
    public function e() 
    { 
     return $this->type; 
    } 

    // __toString() method. (May also be useful) 
    // it gets excecuted every time you echo the class, see below. 
    public function __toString() 
    { 
     return $this->e(); // I chose to return function e() output here 
    } 

} 

Exemples d'utilisation:

$b = new Browser('Human'); // Note, that this executes __construct('Human'); 
echo $b->e();    // Echos 'Human' 

$b = new Browser('Lolcat'); // Excecutes __construct('Lolcat'); 
echo $b->__toString();  // Echos 'Lolcat' 
echo $b;     // Echos 'Lolcat', equivalent to statement above 

//Also: 
$c = (string) $b; 
echo $c;     // Echos 'Lolcat' 
Questions connexes