<?php
class User implements \JsonSerializable {
private $username;
private $password;
private $name;
private static function findByUsername($username) {
$res = new self();
$res->username = $username;
$res->name = 'Some User';
$res->password = password_hash("aXSA9_5uZp0QLhGY", PASSWORD_DEFAULT);
return $res;
}
public function login($username, $password) {
$user = self::findByUsername($username);
if (password_verify($password, $user->password)) {
$fields = get_class_vars(static::class);
foreach ($fields as $field => $_) {
$this->$field = $user->$field;
}
}
}
public function jsonSerialize() {
return [
'username' => $this->username,
'name' => $this->name
];
}
}
$user = new User();
$user->login('admin', 'aXSA9_5uZp0QLhGY');
echo json_encode($user); // {"username":"admin","name":"Some User"}
- Output for 5.6.0 - 5.6.40, 7.0.0 - 7.0.33, 7.1.0 - 7.1.33, 7.2.0 - 7.2.26, 7.3.0 - 7.3.13, 7.4.0 - 7.4.1
- {"username":"admin","name":"Some User"}
preferences:
122.5 ms | 402 KiB | 157 Q