什么是可取的:一个函数,决定它是否应该做任何事情,或决定是否调用该函数?
function x() {
if ($userIsLoggedIn) {
alwaysHelloUser();
}
if ($visitorRegion != 'US') {
alwaysDisplayNoInternationalShipping();
}
if ($day == 'Sunday') {
alwaysLockDownStore();
}
}
function alwaysLockDownStore() {
//close store
//offer alternative store
//show opening hours
//display form for user leaving order for next day
exit("Sorry, we are closed!");
}
Run Code Online (Sandbox Code Playgroud)
要么
function y() {
perhapsSayHelloUser($user);
maybeDisplayNoInternationalShipping($region);
sometimesLockDownStore($day);
}
function sometimesLockDownStore($day) {
if ($day == 'Sunday') {
//close store
//offer alternative store
//show opening hours
//display form for user leaving order for next day
exit ("Sorry, we are closed!");
}
}
Run Code Online (Sandbox Code Playgroud)
该示例很简单,但想象一下使用配置或访问权限启用功能.有接受的标准吗?我的直觉告诉我,y()当exit()涉及到某些事情时会去,打破正常流动.否则,封装和DRY会有利x().你怎么看?
编辑我已经花了这个例子.我的问题是:如果存在一个应该执行函数/方法的条件,那么该控制是否应该在函数中发生(整齐但结果是不确定的)或者在它之外(调用是冗长的,但预期输出总是相同的) )?
我更愿意将主要功能保留在函数中。外部的额外逻辑。因为该函数将按照预期执行操作。或者你每次都会运行需要或不需要的功能。取决于您的问题的复杂程度。
function lockStoreOnDay($day) {
// do locking
return "Sorry, we are closed on $day!";
}
echo lockStoreOnDay('Sunday'); //will print "Sorry, we are closed on Sunday!"
echo lockStoreOnDay('Saturday'); //will print "Sorry, we are closed on Saturday!"
Run Code Online (Sandbox Code Playgroud)
一般来说:为什么不使用类?
如果您有访问权限或配置,则此信息可以存储在数组或对象中。因此,您可以遍历数组或搜索关键字,然后处理应该处理的内容。IE。进行函数调用。
function lockStoreOnDay()
{
//do locking
return "Sorry, we are closed!";
}
$config_closeOnDay = array (
'Sunday'
);
foreach ($config_closeOnDay as $dayToCloseOn) {
echo lockStoreOnDay();
}
Run Code Online (Sandbox Code Playgroud)
也许这有帮助。
| 归档时间: |
|
| 查看次数: |
547 次 |
| 最近记录: |