PHP – печать всех свойств объекта

У меня есть неизвестный объект на php-странице.

Как я могу печатать / эхо его, чтобы я мог видеть, какие у него свойства / ценности?

Как насчет функций? Есть ли способ узнать, какие функции имеет объект?

 <?php var_dump(obj) ?> 

или

 <?php print_r(obj) ?> 

Это те же вещи, которые вы используете для массивов.

Они покажут защищенные и частные свойства объектов с PHP 5. Статические члены класса не будут показаны в соответствии с руководством.

Если вы хотите узнать методы-члены, вы можете использовать get_class_methods () :

 $class_methods = get_class_methods('myclass'); // or $class_methods = get_class_methods(new myclass()); foreach ($class_methods as $method_name) { echo "$method_name<br/>"; } 

Похожие материалы:

get_object_vars ()

get_class_vars ()

get_class () <- для имени экземпляра

Поскольку никто еще не предоставил подход OO, все же здесь, как это было бы сделано.

 class Person { public $name = 'Alex Super Tramp'; public $age = 100; private $property = 'property'; } $r = new ReflectionClass(new Person); print_r($r->getProperties()); //Outputs Array ( [0] => ReflectionProperty Object ( [name] => name [class] => Person ) [1] => ReflectionProperty Object ( [name] => age [class] => Person ) [2] => ReflectionProperty Object ( [name] => property [class] => Person ) ) 

Преимущество при использовании отражения заключается в том, что вы можете фильтровать видимость свойства, например:

 print_r($r->getProperties(ReflectionProperty::IS_PRIVATE)); 

Поскольку свойство Person :: $ private является закрытым, оно возвращается при фильтрации по IS_PRIVATE:

 //Outputs Array ( [0] => ReflectionProperty Object ( [name] => property [class] => Person ) ) 

Прочтите документы!

  • ReflectionClass
  • ReflectionClass :: GetProperties
  • ReflectionClass :: getDefaultProperties
 var_dump($obj); 

Если вы хотите получить дополнительную информацию, вы можете использовать ReflectionClass:

http://www.phpro.org/manual/language.oop5.reflection.html

Мне очень нравится dBug . Обычно я использую var_dump() для скаляров (int, string, boolean и т. Д.) И dBug для массивов и объектов.

Снимок экрана с официального сайта:

alt text

Для получения дополнительной информации используйте эту пользовательскую функцию TO ($ someObject):

Я написал эту простую функцию, которая не только отображает методы данного объекта, но также показывает его свойства и инкапсуляцию, а также другую полезную информацию, такую ​​как примечания к выпуску, если они указаны.

 function TO($object){ //Test Object if(!is_object($object)){ throw new Exception("This is not a Object"); return; } if(class_exists(get_class($object), true)) echo "<pre>CLASS NAME = ".get_class($object); $reflection = new ReflectionClass(get_class($object)); echo "<br />"; echo $reflection->getDocComment(); echo "<br />"; $metody = $reflection->getMethods(); foreach($metody as $key => $value){ echo "<br />". $value; } echo "<br />"; $vars = $reflection->getProperties(); foreach($vars as $key => $value){ echo "<br />". $value; } echo "</pre>"; } 

Чтобы показать вам, как это работает, я создам теперь некоторый случайный примерный класс. Давайте создадим класс под названием Person и разместим некоторые заметки о выпуске чуть выше объявления класса:

  /** * DocNotes - This is description of this class if given else it will display false */ class Person{ private $name; private $dob; private $height; private $weight; private static $num; function __construct($dbo, $height, $weight, $name) { $this->dob = $dbo; $this->height = (integer)$height; $this->weight = (integer)$weight; $this->name = $name; self::$num++; } public function eat($var="", $sar=""){ echo $var; } public function potrzeba($var =""){ return $var; } } 

Теперь давайте создадим экземпляр класса Person и завершим его с помощью нашей функции.

  $Wictor = new Person("27.04.1987", 170, 70, "Wictor"); TO($Wictor); 

Это будет выводить информацию о имени класса, параметрах класса, методах класса, включая информацию об инкапсуляции, а также количество параметров, имена параметров для каждого метода, расположение метода и строки кода, где он существует. См. Вывод ниже:

 CLASS NAME = Person /** * DocNotes - This is description of this class if given else it will display false */ Method [ public method __construct ] { @@ C:\xampp\htdocs\www\kurs_php_zaawansowany\index.php 75 - 82 - Parameters [4] { Parameter #0 [ $dbo ] Parameter #1 [ $height ] Parameter #2 [ $weight ] Parameter #3 [ $name ] } } Method [ public method eat ] { @@ C:\xampp\htdocs\www\kurs_php_zaawansowany\index.php 83 - 85 - Parameters [2] { Parameter #0 [ $var = '' ] Parameter #1 [ $sar = '' ] } } Method [ public method potrzeba ] { @@ C:\xampp\htdocs\www\kurs_php_zaawansowany\index.php 86 - 88 - Parameters [1] { Parameter #0 [ $var = '' ] } } Property [ private $name ] Property [ private $dob ] Property [ private $height ] Property [ private $weight ] Property [ private static $num ] 

Надеюсь, вы найдете это полезным. С уважением.

для знания свойств объекта var_dump (object) – лучший способ. Он будет показывать связанные с ним все связанные с ним общие, закрытые и защищенные свойства, не зная названия класса.

Но в случае методов вам нужно знать имя класса, иначе я думаю, что получить все связанные методы объекта сложно.

попробуйте использовать Pretty Dump, он отлично работает для меня