提供されたすべての変数でスペースを検索する関数「isValid」があります。どの変数にもスペースが含まれていない場合、関数がtrueを返すようにします。これは正しいアプローチでしょうか?
return !(strpos($this->email, " ") || strpos($this->confirm_password1, " ") || strpos($this->handle, " ") || strpos($this->phone, " "));
提供されたすべての変数でスペースを検索する関数「isValid」があります。どの変数にもスペースが含まれていない場合、関数がtrueを返すようにします。これは正しいアプローチでしょうか?
return !(strpos($this->email, " ") || strpos($this->confirm_password1, " ") || strpos($this->handle, " ") || strpos($this->phone, " "));
それを簡単に保守できるようにするために、私は次のようなことをします:
public function isValid()
{
$properties = array(
'email',
'confirm_password1',
'handle',
'phone',
);
foreach ($properties as $property) {
if ($this->containsSpace($property)) {
return false;
}
}
return true;
}
private function containsSpace($property)
{
return !(strpos($this->$property, '') === false);
}
=== false
のチェックとしてstrpos()
注意してください。デモ:http ://codepad.viper-7.com/0ZgNZq 。
これはスペースのみをチェックし、他の空白文字はチェックしないことに注意してください。他の空白文字を確認したい場合は、単純な正規表現を使用することをお勧めします。
private function containsSpace($property)
{
return (bool)preg_match('/\s/', $this->$property);
}
そして最後に、もしあなたが本当にそれをあなたのオリジナルの方法でやりたいのなら、私は次のようなことをするでしょう:
public function isValid()
{
return strpos($this->email, " ") === false && strpos($this->confirm_password1, " ") === false && strpos($this->handle, " ") === false && strpos($this->phone, " ") === false;
}
function isValid($var) {
if (strpos($var, ' ') === false) {
// Does not contain a space character.
return true;
}
return false;
}
return (strpos($this->email, " ") === false && strpos($this->confirm_password1, " ") === false && strpos($this->handle, " ") === false && strpos($this->phone, " ") === false)
しかし、これはかなり読めないコードになります...