- var_dump: documentation ( source)
- strpos: documentation ( source)
<?php
class EmailAddress {
private $emailAddress;
public function __construct($emailAddress) {
$this->assertValidEmailAddress($emailAddress);
$this->emailAddress = $emailAddress;
}
private function assertValidEmailAddress($emailAddress) {
if (!static::isValid($emailAddress)) {
throw new DomainException("Not an email address");
}
}
public static function isValid($emailAddress) {
$length = strlen($emailAddress);
$atPos = strpos($emailAddress, "@");
return $length > 2
&& $atPos != false
&& $atPos != 0
&& $atPos != $length - 1;
}
public function __toString() {
return $this->emailAddress;
}
}
echo new EmailAddress("a@b"); // if you want to pass it around
var_dump(EmailAddress::isValid("a@b")); // if you just want to validate it