Μέθοδος __debugInfo

Η μέθοδος __debugInfo καλείται όταν εμφανίζεται πληροφορία για ένα αντικείμενο από τις συναρτήσεις var_dump και print_r. Πρέπει να επιστρέφει έναν πίνακα με τις ιδιότητες, που πρέπει να εμφανιστούν. Αυτό επιτρέπει την απόκρυψη ευαίσθητων δεδομένων ή την προσθήκη επιπλέον πληροφοριών εντοπισμού σφαλμάτων.

Σύνταξη

phppublic function __debugInfo(): array

Παράδειγμα

Απόκρυψη ευαίσθητων δεδομένων κατά την εμφάνιση αντικειμένου:

php<?php
  class User {
    private $password;
    public $name;
    
    public function __construct($name, $password) {
      $this->name = $name;
      $this->password = $password;
    }
    
    public function __debugInfo() {
      return [
        'name' => $this->name,
        'password' => '******'
      ];
    }
  }
  
  $user = new User('John', 'secret123');
  var_dump($user);
?>

Αποτέλεσμα εκτέλεσης κώδικα:

phpobject(User)#1 (2) {
  ["name"]=> string(4) "John"
  ["password"]=> string(6) "******"
}

Παράδειγμα

Προσθήκη επιπλέον πληροφοριών εντοπισμού σφαλμάτων:

php<?php
  class Product {
    public $id;
    public $price;
    
    public function __construct($id, $price) {
      $this->id = $id;
      $this->price = $price;
    }
    
    public function __debugInfo() {
      return [
        'id' => $this->id,
        'price' => $this->price,
        'price_with_tax' => $this->price * 1.2
      ];
    }
  }
  
  $product = new Product(101, 100);
  var_dump($product);
?>

Αποτέλεσμα εκτέλεσης κώδικα:

phpobject(Product)#1 (3) {
  ["id"]=> int(101)
  ["price"]=> int(100)
  ["price_with_tax"]=> float(120)
}

Παράδειγμα

Φιλτράρισμα ιδιοτήτων για εμφάνιση:

php<?php
  class Config {
    private $dbHost = 'localhost';
    private $dbUser = 'admin';
    private $cacheEnabled = true;
    
    public function __debugInfo() {
      return [
        'cacheEnabled' => $this->cacheEnabled
      ];
    }
  }
  
  $config = new Config();
  print_r($config);
?>

Αποτέλεσμα εκτέλεσης κώδικα:

phpConfig Object (
  [cacheEnabled] => 1
)

Δείτε επίσης

  • τη συνάρτηση var_dump,
    που εμφανίζει πληροφορίες για μια μεταβλητή
  • τη συνάρτηση print_r,
    που εμφανίζει αναγνώσιμες πληροφορίες για μια μεταβλητή