Njia __sleep

Njia __sleep inaitwa kiotomatiki wakati wa kusanifisha kitu kwa kutumia kitendo serialize. Njia hii inapaswa kurudisha safu ya majina ya sifa ambazo zinapaswa kujumuishwa katika uwakilishi uliosanifishwa wa kitu.

Sentaksi

phppublic function __sleep(): array;

Mfano

Tutundue darasa na kutekeleza njia __sleep ili kusanifisha sifa fulani tu:

php<?php
class User {
  public $name = 'John';
  public $age = 30;
  private $password = '12345';
  
  public function __sleep() {
    return ['name', 'age'];
  }
}

$user = new User();
echo serialize($user);
?>

Matokeo ya kutekeleza kodi:

php'O:4:"User":2:{s:4:"name";s:4:"John";s:3:"age";i:30;}'

Mfano

Matumizi ya __sleep ili kuwatenga data nyeti kutoka kwa usanifishaji:

php<?php
class Account {
  public $login = 'admin';
  private $password = 'secret';
  public $email = 'admin@example.com';
  
  public function __sleep() {
    return ['login', 'email'];
  }
}

$account = new Account();
echo serialize($account);
?>

Matokeo ya kutekeleza kodi:

php'O:7:"Account":2:{s:5:"login";s:5:"admin";s:5:"email";s:17:"admin@example.com";}'

Angalia pia

  • njia __wakeup,
    inayoitwa wakati wa kutenganua kitu
  • kitendo serialize,
    kinachosanifisha data