これはおそらくとても簡単ですが、プリント/エコーをどのようにしてクラスをエコーアウトするかわからないので、いくつかの詳細がわかります。クラスをエコーする方法は?
私は、これは動作しません知っているが、これは私がやろうとしているものです:
<?php echo $class; ?>
このような何かを達成するための正しい方法は何ですか?
これはおそらくとても簡単ですが、プリント/エコーをどのようにしてクラスをエコーアウトするかわからないので、いくつかの詳細がわかります。クラスをエコーする方法は?
私は、これは動作しません知っているが、これは私がやろうとしているものです:
<?php echo $class; ?>
このような何かを達成するための正しい方法は何ですか?
toStringメソッドをクラスに追加できます。次に、有用な情報をエコーしたり、レンダリングメソッドを呼び出してHTMLなどを生成したりすることができます。
次のような何かをするとき__toStringメソッドが呼び出されます。
echo $class;
または
$str = (string)$class;
次のようにリンクされている例がある:
<?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;
?>
あなたが最初に答えたように、あなたは2を持っています: –
クラスのインスタンスでvar_dumpを使用します。
<?php
$my_class = new SomeClass();
var_dump($my_class);
?>
-1 for slowness .. jk –
(あなたがたとえば、子クラスに利用できるかを知りたい場合は)、あなたはdebug()
メソッドを追加することができ、あなたのクラスのうち、より詳細な情報を取得します。ここで
<?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();
を使用できsymfonyのVarDumperコンポーネントhttp://symfony.com/doc/current/components/var_dumper/introduction.html:
作曲を経由して、それをインストールします。
composer require symfony/var-dumper
使用法:
require __DIR__.'/vendor/autoload.php';
// create a variable, which could be anything!
$someVar = ...;
dump($someVar);
質問はSymfonyの下でタグ付けされていません。 –
このコンポーネントはどのプロジェクトでも使用できます。 –
私たちが動作しないコードを示すポイントはありません。コードが機能しないので、あなたがやりたいことを外挿することはできません。定義によって、あなたがしたいことを説明することはありません。それは意味がありません。だから、あなたが望む出力を記述する(または英語で説明する)。 –