2016-06-26 14 views
-1

Ich folge einem Udemy-Kurs, wo wir toString gelernt haben, aber in meinem Browser zeigt es nichts, wenn ich die ToString-Funktion verwende. PHP toString() funktioniert nicht

<?php 

class Baddie{ 

    //property 
    public $evilness = 10; 
    public $name = ""; 

    //constructor 
    public function __construct($evilness, $name){ 
     //echo "A ". __CLASS__ . " has been created!"; 
     $this->evilness = $evilness; 
     $this->name = $name; 
    } 

    public function __toString(){ 
     return (string)$this->name; 
    } 
} 

$bad = new Baddie(3, "bob"); 

//var_dump($bad); 

?> 

Hier ist ein Screenshot Chrome: http://prntscr.com/bl941w

Dank im Voraus!

+2

Wie wäre es mit echo $ bad; 'dass die magische Funktion sogar ausgelöst wird. – Rizier123

Antwort

3

Sie haben gerade ein neues Objekt Baddie erstellt, aber die Methode __toString wird nie aufgerufen. Die Methode wird nur aufgerufen, wenn man sie direkt $bad->__toString() oder implizit durch einen Guss dh echo $bad; oder $str = (string) $bad

In Ihrem Fall nennen, guss Sie

$bad = new Baddie(3, "bob"); 
echo $bad; 
2

Sie toString()

echo $bad->__toString() 
anrufen müssen verwenden

Oder nur

echo $bad 

Wenn echo mit einem Objekt aufgerufen wird, wird nach der Methode __toString gesucht und das Ergebnis als Ausgabe verwendet.