<?php

class User
{
    private $information = array(
        "secret"=>"Super secret value"
    );
    public $expose = "Not so secret value";

    public function __construct($username, $password)
    {
        $this->username = $username;
        $this->password = $password;
    }

    public function __sleep()
    {
        echo "Hello from function __sleep().\n";
        return array("username", "expose");
    }

    public function __serialize()
    {
        echo "Hello from function __serialize().\n";
        return [
          "username" => $this->username,
          "password" => $this->password,
          "information" => $this->information
        ];
    }
}

$new_user_object = new User("guest", "Gu35t");
$serialized_new_user_object = serialize($new_user_object);

var_dump($serialized_new_user_object);

?>