我有一个Handler.php,用于管理来自多个页面的用户输入帖子。
在Handler.php的几个部分中,我需要执行same
查询。
现在我在Handler.php的不同部分重复了相同的代码。
调用函数然后返回结果会更好吗?
我知道它会起作用,但是,既然我真的很业余,我会很感谢专家的建议。
答案 0 :(得分:2)
最好在需要执行相同代码的多个位置调用函数!
它更具可读性和可维护性,因为您需要对该功能进行的每项更改都只能在函数中完成,而不能在您重复代码的整个代码中的N个位置完成。
重复代码的做法非常糟糕,您应该始终尝试以一种只需要在项目中编写一次代码的方式来规划和构建代码。
将数据库的每个操作都放在一个类中也是一件好事。这样你就可以很快找到适合数据库的代码。
想象一下:
//DataHandler.php
/* ... some code ... */
mysqli_query($dbCon, "SELECT * FROM someTable WHERE X = Y");
/* ... some other code ... */
mysqli_query($dbCon, "SELECT * FROM someTable WHERE X = Y");
/* ... much more code ... */
mysqli_query($dbCon, "SELECT * FROM someTable WHERE X = Y");
现在您需要更改查询中的内容
//DataHandler.php
/* ... some code ... */
mysqli_query($dbCon, "SELECT * FROM someTable WHERE Y = X");
/* ... some other code ... */
mysqli_query($dbCon, "SELECT * FROM someTable WHERE Y = X");
/* ... much more code ... */
mysqli_query($dbCon, "SELECT * FROM someTable WHERE X = Y");
WHOOPS 您错过了在一个位置更改它,现在您的系统中有一个可能非常大的错误,您将在搜索此错误时流下眼泪。
这样做要好得多:
//DataHandler.php
/* ... some code ... */
$data = selectSomething($someDataYouNeedToCheck);
/* ... some other code ... */
$data = selectSomething($someDataYouNeedToCheck);
/* ... much more code ... */
$data = selectSomething($someDataYouNeedToCheck);
function selectSomething($y){
mysqli_query($dbCon, "SELECT * FROM someTable WHERE X = ".$y);
// return the result after working with it
}
现在您只需更改功能中的代码,就不会错过项目的一部分!您有单点故障。您知道错误发生的位置,因为只有可能发生错误的位置!