Question

C’est probablement très facile, mais je n'arrive pas à comprendre comment imprimer / reproduire un cours afin que je puisse trouver quelques détails à ce sujet.

Je sais que cela ne fonctionne pas, mais voici ce que j'essaie de faire:

<?php echo $class; ?>

Quelle est la bonne façon de réaliser quelque chose comme ça?

Était-ce utile?

La solution

Si vous souhaitez uniquement imprimer le contenu de la classe à des fins de débogage, utilisez print_r ou var_dump .

Autres conseils

Vous pouvez essayer d'ajouter un toString méthode à votre classe. Vous pouvez ensuite faire écho à des informations utiles ou appeler une méthode de rendu pour générer du HTML ou autre chose!

La méthode __toString est appelée lorsque vous effectuez l'une des opérations suivantes:

echo $class;

ou

$str = (string)$class;

L'exemple lié est le suivant:

<?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;
?>

Utilisez var_dump sur une instance de votre classe.

<?php
$my_class = new SomeClass();
var_dump( $my_class );
?>

Pour obtenir des informations plus détaillées de votre classe (si vous voulez savoir ce qui est disponible pour une classe enfant, par exemple), vous pouvez ajouter une méthode debug () .

Voici un exemple de classe avec une méthode que j'utilise et qui affiche les méthodes, les vars par défaut et les vars d'instance de manière structurée et agréable:

<?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();

Vous pouvez utiliser le composant Symfony VarDumper http://symfony.com/doc/ current / components / var_dumper / introduction.html :

Installez-le via Composer:

composer require symfony/var-dumper 

Utilisation:

require __DIR__.'/vendor/autoload.php';

// create a variable, which could be anything!
$someVar = ...;

dump($someVar);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top