我的问题基本上是..在PHP中创建函数的好习惯是什么?
例如 - 如果我有两个选项upvote和downvote。
因此,一个选择是为upvote和downvote制作两个单独的函数,如 -
function upvote($id,$user){
//The upvote code goes here..
}
function downvote($id,$user){
//The downvote code goes here..
}
另一种选择是将两个函数组合在一起,并使用if-else为一个函数 例如:
function vote($id,$user,$vote){
if( $vote == 'upvote' ){
//The upvote code goes here..
}
else {
// the downvote code goes here..
}
}
所以我想知道这两种方法中的哪一种是一种好的做法,哪种方法可以更快(性能明智)。
PS - 我将我的函数文件包含在每页的顶部。
答案 0 :(得分:1)
将它们分开通常会更好。一个好的目标是让每个函数只执行一个动作。它使得将来调试变得更加容易,并且它提供了更易读的代码。这个原则在这里有更好的解释:
答案 1 :(得分:1)
我认为第一选择可能是好的:
function upvote($id,$user){
//The upvote code goes here..
}
function downvote($id,$user){
//The downvote code goes here..
}
因为在将来编辑代码方面可以灵活处理并且就速度而言......我不认为两者都会有很大差异:)
答案 2 :(得分:1)
将代码拆分为单独的函数会减少其toxicity
,因此建议使用。
或者换句话说:功能越大越复杂,越难以阅读,也会增加漏洞的可能性。
如果一段代码可以分成逻辑部分,你应该这样做。
答案 3 :(得分:1)
制作一个功能而不是两个功能没有任何好处。这取决于什么 在函数内部:db调用,webservices调用ecct。
如果两个函数内部的功能相同,则一个函数可能有意义 唯一改变的是$ vote参数和你 不想重复自己,在不同的功能中复制/粘贴代码。
我总是尝试使用单一的责任模式,以便只有一个功能 那个功能。
答案 4 :(得分:0)
从人类的角度来看,你可能认为投票是一个单一的行动 - 只是投票;因为一般情况下你不会说 - 我要投票或者投票给某人;)。但在这种情况下,如果你认为面向对象,你有一个女巫可以投票或投票。像这样的东西
class post {
var $votes = 0;
// other staff
function up-vote () {
$this->votes = $this->votes++;
}
function down-vote () {
$this->votes = $this->votes--;
}
}
如您所见,课程post
有two separate methods
。在性能方面,差异很小。