繁体   English   中英

如果还要使用其他语句?

[英]How many else if statements should we use?

我有一个PHP文件ajax.php ,我总是将我的ajax发送到该文件。 代码中大约有50个if语句。 我总是将POST参数cmd传递给我的ajax.php文件,并检查变量是否已设置,并根据变量内容执行不同的代码。

我想知道我是否应该将ajax.php拆分为多个文件,以减少else if语句的数量并提高性能。 但是, else if我们建议使用10000个,那么我们建议使用多少个?它对性能有很大影响吗?

我不认为使用50或100个不同的命令会带来性能问题。 但是我建议的是使用开关盒和功能,像这样

$cmd = $_POST['cmd'];

switch ($cmd){
    case "command1":
        fnCommand1();
        break;
    case "command2":
        fnCommand2();
        break;
}

function fnCommand1(){
    //do command 1
}

function fnCommand2(){
    //do command 2
}

如果您决定将其拆分为文件,将更易于阅读和管理。

您可以在php中使用键值模式。 用您的post参数作为键,其他作为s值创建一个数组。 每当参数进入ajax.php ,使用array_key_exist() 数组键值数组检查键

我认为自己写10k elseif几乎是疯狂的,我宁愿crack之以鼻,找到一个有效的算法,或者改用switch语句。

顺便说一句,请始终避免这种情况,是单个文件还是1000个文件都没有关系,处理时间将始终相同

分隔文件不能提高性能,但易于阅读和维护。

如果您的代码是这样的:

if($_POST["cmd"]=="a"){
//case a
}else if($_POST["cmd"]=="a"){
//case b

为了提高性能,您可以将其更改为开关盒。 但是,如果语句优化始终不是性能至关重要的。

PHP在很多方面都没有性能问题,但是人们确实有。 也许您可以阅读代码,因为您现在可以记住它。 但是,如果您的某人加入您的团队,他将会迷失并且可能不会因此而加入。 或者,如果您在一年后返回此脚本,是否可以阅读,添加或删除某些内容?

每个脚本或类都应该做一件事情或与一个实体一起工作。 有许多方法可以编写更好的代码。

单一责任原则

面向对象编程

还有很多

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM