- var_dump: documentation ( source)
- trim: documentation ( source)
<?php
readonly class Email {
public function __construct(public string $emailString){}
public function __toString() {return trim($this->emailString);}
}
readonly class ValidEmail extends Email {}
function validateEmail(Email $email): ValidEmail {return new ValidEmail($email);}
function saveToDatabase(ValidEmail $email) {return 'Saved succesfully';}
$email = new Email('vasya@pupkin.com');
$validatedEmail = validateEmail($email);
var_dump(saveToDatabase($validatedEmail));
var_dump(saveToDatabase($email));