سؤال
وربما هذا هو السهل حقا لكنني لا يمكن أن يبدو لمعرفة كيفية طباعة / صدى فئة حتى أتمكن من معرفة بعض التفاصيل حول هذا الموضوع.
وأنا أعلم أن هذا لا يعمل، ولكن هذا هو ما أحاول القيام به:
<?php echo $class; ?>
ما هي الطريقة الصحيحة لتحقيق شيء من هذا القبيل؟
المحلول
إذا كنت ترغب فقط في طباعة محتويات الطبقة لأغراض التصحيح، استخدم print_r
أو <وأ href = "http://php.net/var_dump" يختلط = "noreferrer"> var_dump
.
نصائح أخرى
هل يمكن أن حاول إضافة 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;
?>
استخدم var_dump على مثيل صفك.
<?php
$my_class = new SomeClass();
var_dump( $my_class );
?>
لحصول على معلومات أكثر تفصيلا من فصلك (إذا كنت تريد أن تعرف ما هو متاح لفئة الأطفال على سبيل المثال)، يمكنك إضافة أسلوب 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/ الحالية / مكونات / var_dumper / introduction.html :
وتثبيته عن طريق الملحن:
composer require symfony/var-dumper
والاستعمال:
require __DIR__.'/vendor/autoload.php';
// create a variable, which could be anything!
$someVar = ...;
dump($someVar);