FILTER_VALIDADE_EMAILを使用したいのですが、文字列が必要であるという警告が表示されます。私はphpを初めて使用しますが、OOを使用するのに問題があります。
<?php
Class User {
private $id;
private $login_name;
private $hashed_password;
private $email;
public function __construct($login_name, $email){
$this->login_name = $login_name;
$this->email = $email;
}
public function getLoginName(){
return $this->login_name;
}
public function setLoginName(String $login_name){
$this->login_name = $login_name;
}
public function setEmail(String $email){
$this->email = $email;
}
public function getEmail(String $email){
return (string) $this->email;
}
}?>
<?php
include("../lib/php/User.php");
class UserDAO {
private $user;
public function __construct(){
}
public function getUser(){
return $this->user;
}
public function setUser(User $user){
$this->user = $user;
}
public function insertUser(User $user){
$email = $user->getEmail();
$login_name = $user->getLoginName();
//ver http://www.php.net/manual/en/function.filter-var.php
if(filter_var($email, FILTER_VALIDATE_EMAIL) && empty($login_name)){
echo "valid user";
}
}
}
$user = new User("user","user@gmail.com");
$userDAO = new UserDAO();
$userDAO->insertUser($user); ?>
返されるエラーは
PHPキャッチ可能な致命的なエラー:User :: getEmail()に渡される引数1は、Stringのインスタンスである必要があり、指定されていません