在開發淘寶SDK模板時,在module.xml中經常需要配置變量以便於用戶進行模板的編輯。但難免用戶在輸入參數時,忘記了輸入參數。此是,我們就得使用在PHP代碼中加入一段判斷用戶是否輸入了參數的代碼,常用的有兩種方式:
方式一:使用$_MODULE['變量名']的方式
if($_MODULE['var']) {
// 這是表示已經輸入了值
}
else {
// 這里表示未輸入值
}
這種方法很簡單,我也一直常用。
方式二:先賦值,再用empty判斷。
但有時候,為了代碼的緊湊性,經常需要在模塊的PHP文件中的最前面初始化變量的值。然后再逐一判斷用戶哪些輸入是有效的,如果出現了錯誤,那就應該在模塊中展示出錯誤給用戶。如下:
$mod_title = $_MODULE['title']; $mod_style = $_MODULE['style']; $mod_href = $_MODULE['href']; // ……
為了不使模板出現不正常的現象,我們可以需要對$mod_style進行判斷,只是指定了$mod_style的值時,才能根據它對模板進行展示。此時,一般是直接對變量$mod_style進行判斷了,而我們最常見的錯誤方式是:
if($mod_style == "") { //.... }
或者是:
if($mod_style) { //.... }
在實際的應用當中,卻並不能如我們所願,在我親自測試之后發現,不論使用上面哪種方式,即使我不輸入任何值,if后面的條件值總是為true。所以,我一般將其改寫成了如下形式:
if($_MODULE['style']) { //... }
如此一來便能正確的解決問題,但是輸入 $mod_style 比輸入 $_MODULE['style'] 更加迅速,也更不容易出錯,所以我還是希望使用$mod_style來判斷,結果采用了如下代碼:
if(!empty($mod_style)) { // .... }
經測試,正常了!
