У меня есть неизвестный объект на 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_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:: $свойство является закрытым, оно возвращается при фильтрации по IS_PRIVATE:
//Outputs
Array
(
    [0] => ReflectionProperty Object
        (
            [name] => property
            [class] => Person
        )
)
Прочитайте документы!
var_dump($obj); 
Если вам нужна дополнительная информация, вы можете использовать ReflectionClass:
Мне очень нравится dBug. Обычно я использую var_dump() для скаляров (int, string, boolean и т.д.) И dBug для массивов и объектов.
Снимок экрана с официального сайта:
 
Чтобы получить больше информации, используйте эту пользовательскую функцию 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, он отлично работает для меня