Frage
Dies ist wahrscheinlich wirklich einfach, aber ich kann nicht scheinen, um herauszufinden, wie / drucken eine Klasse Echo so dass ich einige Details über sie herausfinden kann.
Ich weiß, dass dies nicht funktioniert, aber das ist, was ich zu tun werde versuchen:
<?php echo $class; ?>
Was ist der richtige Weg, um so etwas zu erreichen?
Andere Tipps
Sie könnten versuchen, ein toString Hinzufügen Methode Ihrer Klasse. Anschließend können Sie einige nützliche Informationen Echo, oder eine Render-Methode aufrufen, HTML oder etwas zu generieren!
Die __toString Methode wird aufgerufen, wenn Sie so etwas wie die folgenden zu tun:
echo $class;
oder
$str = (string)$class;
Das Beispiel verknüpft ist wie folgt:
<?php
// Declare a simple class
class TestClass
{
public $foo;
public function __construct($foo) {
$this->foo = $foo;
}
public function __toString() {
return $this->foo;
}
}
$class = new TestClass('Hello');
echo $class;
?>
Verwenden Sie var_dump auf eine Instanz der Klasse.
<?php
$my_class = new SomeClass();
var_dump( $my_class );
?>
Um ausführlichere Informationen aus Ihrer Klasse (wenn Sie wissen wollen, was zum Beispiel für ein Kind Klasse verfügbar ist), können Sie eine debug()
Methode hinzufügen.
Hier ist ein Beispiel-Klasse mit einer solchen Methode, die ich verwenden, dass druckt die Methoden, Standard Vars und Instanz Vars in einer netten Art und Weise strukturiert:
<?php
class TestClass{
private $privateVar = 'Default private';
protected $protectedVar = 'Default protected';
public $publicVar = 'Default public';
public function __construct(){
$this->privateVar = 'parent instance';
}
public function test(){}
/**
* Prints out detailed info of the class and instance.
*/
public function debug(){
$class = __CLASS__;
echo "<pre>$class Methods:\n";
var_dump(get_class_methods($class));
echo "\n\n$class Default Vars:\n";
var_dump(get_class_vars($class));
echo "\n\n$class Current Vars:\n";
var_dump($this);
echo "</pre>";
}
}
class TestClassChild extends TestClass{
public function __construct(){
$this->privateVar = 'child instance';
}
}
$test = new TestClass();
$test2 = new TestClassChild();
$test->debug();
$test2->debug();
Sie können Symfony VarDumper Komponente verwenden http://symfony.com/doc/ Strom / components / var_dumper / introduction.html :
Installieren Sie es über Komponist:
composer require symfony/var-dumper
Verbrauch:
require __DIR__.'/vendor/autoload.php';
// create a variable, which could be anything!
$someVar = ...;
dump($someVar);