3v4l.org

run code in 300+ PHP versions simultaneously
<?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