J'ai un objet inconnu dans la page php.
Comment puis-je l’imprimer/le reprendre pour que je puisse voir ses propriétés/valeurs?
Qu'en est-il des fonctions? Est-il possible de savoir quelles sont les fonctions d'un objet?
<?php var_dump(obj) ?>
ou
<?php print_r(obj) ?>
Ce sont les mêmes choses que vous utilisez également pour les tableaux.
Celles-ci montreront les propriétés protégées et privées des objets avec PHP 5. Les membres de classe statiques ne seront pas affichés conformément au manuel.
Si vous voulez connaître les méthodes membres, vous pouvez utiliser 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/>";
}
Trucs connexes:
get_class () <- pour le nom de l'instance
Comme personne n’a pas fourni d’approche OO ici, c’est comme si ce serait fait.
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
)
)
L'avantage lorsque vous utilisez la réflexion est que vous pouvez filtrer par visibilité des propriétés, comme ceci:
print_r($r->getProperties(ReflectionProperty::IS_PRIVATE));
Puisque Person :: $ property est privé, il est renvoyé lors du filtrage par IS_PRIVATE:
//Outputs
Array
(
[0] => ReflectionProperty Object
(
[name] => property
[class] => Person
)
)
Lire la documentation!
var_dump($obj);
Si vous souhaitez plus d’informations, vous pouvez utiliser ReflectionClass:
J'aime vraiment dBug . J'utilise habituellement var_dump()
pour les scalaires (int, chaîne, booléen, etc.) et dBug pour les tableaux et les objets.
Capture d'écran d'objet du site officiel:
Pour obtenir plus d'informations, utilisez cette fonction personnalisée TO ($ someObject):
J'ai écrit cette fonction simple qui non seulement affiche les méthodes d'un objet donné, mais également ses propriétés, son encapsulation et d'autres informations utiles, telles que les notes de publication, le cas échéant.
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>";
}
Pour vous montrer comment cela fonctionne, je vais maintenant créer un exemple de classe aléatoire. Permet de créer une classe appelée Person et permet de placer des notes de publication juste au-dessus de la déclaration de classe:
/**
* 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;
}
}
Créons maintenant une instance d'une personne et enveloppons-la avec notre fonction.
$Wictor = new Person("27.04.1987", 170, 70, "Wictor");
TO($Wictor);
Cela produira des informations sur le nom de la classe, les paramètres et les méthodes, y compris les informations d’encapsulation et le nombre de paramètres, les noms des paramètres de chaque méthode, leur emplacement et les lignes de code existantes. Voir la sortie ci-dessous:
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 ]
J'espère que vous le trouverez utile. Cordialement.
essayez d'utiliser Pretty Dump cela fonctionne très bien pour moi
pour connaître les propriétés de l'objet, var_dump (objet) est la meilleure solution. Il affichera toutes les propriétés publiques, privées et protégées qui lui sont associées sans connaître le nom de la classe.
Mais dans le cas de méthodes, vous devez connaître le nom de la classe, sinon je pense qu'il est difficile d’obtenir toutes les méthodes associées à l’objet.