在开发淘宝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)) { // .... }
经测试,正常了!