我认为以下是一个非常标准程序,每个人都在其任何应用程序中写了一百次:
$orderByColumnName = '';
if (isset($this->urlParams()['orderby']) {
$orderByColumnName = $this->urlParams()['orderby'];
}
$this->someSortingFunction($orderByColumnName);
我一直这么做很多次,我感到厌倦了。
某种类似全球的理解抑制错误是邪恶的。
尽管代码可以写得如此简洁:
$this->someSortingFunction(@$this->urlParams()['orderby']);
三元速记true ?: false;
在这种情况下很接近但没有用,因为条件上没有假定的isset检查。因此,我们仍然要写:
$orderByColumnName = !empty($this->urlParams()['orderby'])?$this->urlParams()['orderby']:'';
那你们究竟是怎么处理这种情况的呢? if
一路走来?还有其他更智能的方式可以分享吗?
答案 0 :(得分:1)
为什么不改变urlParams()
方法的运作方式? PHP没有真正的方法重载,但你可以在方法中伪造它。
public function urlParam($param = null) {
//lets assume $internal_array is
//your object's internal array sent through urlParam()
if(is_null($param)) {
return $internal_array;
} else {
return isset($internal_array[$param]) ? $internal_array[$param] : '';
}
}
执行此操作可让您保持现有代码与$this->urlParams()['some_param']
的使用兼容,同时使您能够将所有内容重构为$this->urlParams('some_param')
。
答案 1 :(得分:0)
这是一个单独的静态函数,如果数组中没有值,则返回 <cc1:CaptchaControl ID="CaptchaControl1" runat="server" CaptchaBackgroundNoise="None"
CaptchaHeight="40" CaptchaLength="5" CaptchaLineNoise="None" CaptchaMaxTimeout="240"
CaptchaMinTimeout="5" FontColor="111, 109, 85" Width="325px" CaptchaWidth="300" CssClass="textarea_captha" />
。
NULL
每次我们需要使用public static function value($key, $list, $default = NULL) {
if (is_array($list)) {
return array_key_exists($key, $list) ? $list[$key] : $default;
}
return $default;
}
empty(), isset(), array_key_exists()