2017-03-14 1 views
0

Wenn Sie für diese Bibliothek an der Nutzung aussehen, https://github.com/Gregwar/FormidableWas passiert, wenn ein PHP-Objekt wiederholt wird?

Sie haben, ist

$form = new Gregwar\Formidable\Form('forms/example.html'); 

$form->handle(function() { 
    echo "Form OK!"; 
}, function($errors) { 
    echo "Errors: <br/>"; 
    foreach ($errors as $error) { 
     echo "$error<br />"; 
    } 
}); 

echo $form; 

Meine Frage, wie wird das gemacht? Wie wollen Sie das $ form Objekt echo ..

für zB wenn ich

class Something 
{ 
    public $somevariable = 'London'; 

    public function __construct() 
    { 
    $this->foo(); 
    } 

    public function foo(){ 
     //Do Something 

    } 
} 

$myObj = new Something(); 
echo $myObj; 

Der obige Code gibt mir einen Fehler. Was kann ich tun, um $ myObj wiederzugeben und keine Fehlermeldung zu erhalten, damit ich etwas auf dem Bildschirm anzeigen kann?

Wir alle wissen, dass wir so etwas wie tun kann,

echo $myObj->somevariable; 

ohne einen Fehler .. Wie kann ich

echo $myObj; 

ohne einen Fehler zu bekommen, wie es in der Formidable Bibliothek erfolgt.

+1

'__toString()' drucken? http://php.net/manual/en/language.oop5.magic.php#object.tostring – CD001

+0

Verwenden Sie 'print_r ($ myObj)' oder 'var_dump ($ myObj)'? –

+0

@JayBlanchard ist es nicht ganz was _user3620069_ will? – smarber

Antwort

2

Magic-Methode __toString() in Ihrer Klasse. Dadurch kann Ihre Klasse den Code in dieser Methode ausführen, wenn Ihr Objekt wie eine Zeichenfolge behandelt wird (d. H. Wenn es mit echo verwendet wird). Die Methode muss eine Zeichenfolge zurückgeben, andernfalls wird ein Fehler ausgelöst.

Sie werden in der Bibliothek, die Sie verknüpft haben, feststellen, dass sie eine in ihrer Formularklasse haben.

/** 
* Convert to HTML 
*/ 
public function __toString() 
{ 
    return $this->getHtml(); 
} 
0

Sie können __tostring() magische Funktion, um Ihre Klasse

class Something 
{ 
    public $somevariable = 'London'; 

    public function __construct() 
    { 
    $this->foo(); 
    } 

    public function foo(){ 
    //Do Something 

    } 
    public function __tostring(){ 
    return $this->somevariable; 
    } 
} 

hinzufügen echo $myObj Aufruf wird London

Verwandte Themen