糾結一個簡單的if格式問題
就像表單驗證那樣 有些語句總要寫狠多if 判斷使用者名稱、郵箱、密碼等。
用js驗證時寫一個函數
function check(){
if(使用者名稱!=''){
if(郵箱!=''){
if(密碼!=''){
return true;
}
}
}
return false;
}
覺得層數太多不好看;特別是if為真裡面的代碼多的時候;甚至一個if裡的內容超過了一頁的範圍。
於是改成了這樣。
function check(){
if(使用者名稱!=''){
return false;
}
if(郵箱!=''){
return false;
}
if(密碼!=''){
return false;
}
return true;
}
這樣看起來清晰,特別是if多的時候。只是有多少個判斷就要寫 return false多次。
大神們給給寶貴的意見阿 先謝謝啦。
------解決方案--------------------
function check(){
$error = 0;
if(使用者名稱==''){
$error=1;
}
if(郵箱==''){
$error=2;
}
if(密碼==''){
$error=3;
}
return $error;
}
那就只能這樣了,返回一個錯誤碼來協助判斷
------解決方案--------------------
可以把你驗證的東西都寫成類方法,然後使用鏈式文法來檢驗:
class check_rule{
public function check_nickname($name){
if(true){
return $this;
}
die('使用者名稱不符合規則');
}
public function check_email($email){
if(true){
return $this;
}
die('email不符合規則');
}
public function check_password($password){
if(true){
return $this;
}
die('密碼不正確');
}
}
$check = new check_rule();
$check->check_nickname($name)
->check_email($email)
->check_password($password);