這可能很容易,但我似乎無法弄清楚如何打印/回顯一個類,以便我可以找出有關它的一些細節。如何「回顯」班級?
我知道這是不行的,但是這是我想要做的事:
<?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 :) – 2009-10-24 23:36:46
在你的類的實例上使用var_dump。
<?php
$my_class = new SomeClass();
var_dump($my_class);
?>
-1緩慢.. jk – 2009-10-25 00:57:09
爲了獲得更詳細的信息您的類(如果你想知道有哪些可用的子類爲例),您可以添加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,bro。上標記的問題。 – 2015-11-22 16:10:35
該組件可以用於任何項目。 – 2015-11-23 00:24:25
向我們展示不起作用的代碼毫無意義。我們不能推斷你想做什麼,因爲代碼不起作用:根據定義,它沒有描述你想要做什麼。它沒有意義。所以,請描述(或用英文解釋)你想要的輸出。 – 2011-07-23 15:00:16