Php 在开关中放入多个if

Php 在开关中放入多个if,php,if-statement,switch-statement,Php,If Statement,Switch Statement,我想把所有这些“如果”条件与一个大开关,如果可能的话。 这是我的职责: function checkModel($model){ $model_value = 'Default Model'; if (strpos($model,'TMP') !== false) { $model_value = 'TMP - Default'; } if (strpos($model,'TMT') !== false) { $model_value = 'TMT - Default'; }

我想把所有这些“如果”条件与一个大开关,如果可能的话。 这是我的职责:

function checkModel($model){

$model_value = 'Default Model';

if (strpos($model,'TMP') !== false) {
    $model_value = 'TMP - Default';
}
if (strpos($model,'TMT') !== false) {
    $model_value = 'TMT - Default';
}
if (strpos($model,'TMS') !== false) {
    $model_value = 'TMS - Default';
}
if (strpos($model,'IcomSpeed') !== false) {
    $model_value = 'IcomSpeed - Default';
}
if (strpos($model,'TMSSA') !== false) {
    $model_value = 'TMSSA - Default';
}
if (strpos($model,'IcomsDisplay') !== false) {
    $model_value = 'IcomsDisplay - Default';
}   
if (strpos($model,'ITV') !== false) {
    $model_value = 'ITV - Default';
}   
if (strpos($model,'Terminal') !== false) {
    $model_value = 'Terminal - Default';
}   
if (strpos($model,'IcomsTexto') !== false) {
    $model_value = 'IcomsTexto - Default';
}   
if (strpos($model,'PIV') !== false) {
    $model_value = 'PIV - Default';
}   
if (strpos($model,'TM150') !== false) {
    $model_value = 'TM150 - Default';
}   
if (strpos($model,'TM60') !== false) {
    $model_value = 'TM60 - Default';
}

return ($model_value);
};
我真的不知道我该怎么做:/这就是为什么我要问你们^^

我为什么要这样说:

Bcz有一个开关,我可以直接用“break”退出,在这个版本中,程序将检查每个“if”条件,我想-


<>现在如果你告诉我“如果”版本比“开关”版本快,那么就要离开:p> < p>代码>切换< /COD>在卷曲括号/C语法语言(C,C++,C,java,perl,php)不支持复杂的操作,在每个>Case< /Cord>语句中,因为传统的<代码>开关< /C> >语句编译成一个哈希表,它只允许即时比较,不允许中间操作。PHP不是这样编译的,但是关于
switch
的语法规则仍然存在

…因此,简而言之,在这种情况下,您不能使用
开关
,但是您可以通过将代码转换为使用关联数组,然后对其进行迭代来简化代码

function checkModel($model){

    $arr = array(
        'TMP', 'TMT', 'TMS', 'IcomSpeed', /* etc... */
    );

    foreach ($arr as $str) {
        if( strpos($model, $str) !== false ) return $str . ' - Default';
    }

    return 'Default Model';
}

<>代码>转换> /CODE >卷曲括号/C语法语言(C、C++、C、java、perl、php)不支持复杂的操作,在每个<代码>案例< /COD>语句中,因为传统的<代码>开关< /C> >语句编译成一个哈希表,只允许立即比较,不允许中间操作。PHP不是这样编译的,但是关于
switch
的语法规则仍然存在

…因此,简而言之,在这种情况下,您不能使用
开关
,但是您可以通过将代码转换为使用关联数组,然后对其进行迭代来简化代码

function checkModel($model){

    $arr = array(
        'TMP', 'TMT', 'TMS', 'IcomSpeed', /* etc... */
    );

    foreach ($arr as $str) {
        if( strpos($model, $str) !== false ) return $str . ' - Default';
    }

    return 'Default Model';
}

<>代码>转换> /CODE >卷曲括号/C语法语言(C、C++、C、java、perl、php)不支持复杂的操作,在每个<代码>案例< /COD>语句中,因为传统的<代码>开关< /C> >语句编译成一个哈希表,只允许立即比较,不允许中间操作。PHP不是这样编译的,但是关于
switch
的语法规则仍然存在

…因此,简而言之,在这种情况下,您不能使用
开关
,但是您可以通过将代码转换为使用关联数组,然后对其进行迭代来简化代码

function checkModel($model){

    $arr = array(
        'TMP', 'TMT', 'TMS', 'IcomSpeed', /* etc... */
    );

    foreach ($arr as $str) {
        if( strpos($model, $str) !== false ) return $str . ' - Default';
    }

    return 'Default Model';
}

<>代码>转换> /CODE >卷曲括号/C语法语言(C、C++、C、java、perl、php)不支持复杂的操作,在每个<代码>案例< /COD>语句中,因为传统的<代码>开关< /C> >语句编译成一个哈希表,只允许立即比较,不允许中间操作。PHP不是这样编译的,但是关于
switch
的语法规则仍然存在

…因此,简而言之,在这种情况下,您不能使用
开关
,但是您可以通过将代码转换为使用关联数组,然后对其进行迭代来简化代码

function checkModel($model){

    $arr = array(
        'TMP', 'TMT', 'TMS', 'IcomSpeed', /* etc... */
    );

    foreach ($arr as $str) {
        if( strpos($model, $str) !== false ) return $str . ' - Default';
    }

    return 'Default Model';
}

您不能在此处使用
开关

你能做的是:是:

if (strpos($model,'TMP') !== false) {
    return 'TMP - Default';
}

这将使它在满足条件后立即停止。

您不能在此处使用
开关

你能做的是:是:

if (strpos($model,'TMP') !== false) {
    return 'TMP - Default';
}

这将使它在满足条件后立即停止。

您不能在此处使用
开关

你能做的是:是:

if (strpos($model,'TMP') !== false) {
    return 'TMP - Default';
}

这将使它在满足条件后立即停止。

您不能在此处使用
开关

你能做的是:是:

if (strpos($model,'TMP') !== false) {
    return 'TMP - Default';
}

这将使它在满足条件后立即停止。

如果您想了解开关的工作原理,可以阅读

然而,看起来您只是想稍微清理一下您的函数。虽然我不是专家,但我会这样做:

function checkModel( $model ) {
    $strings = array( 'TMP' , 'TMT' , 'TMS' , 'IcomSpeed' , 'TMSSA' , 'IcomsDisplay' , 'ITV' , 'Terminal' , 'IcomsTexto' , 'PIV' , 'TM150' , 'TM60');
    foreach( $strings as $s ) 
        if( strpos( $model , $s ) !== FALSE )
            return $s . " - Default";
    return "Default Model";
}

我还没有尝试运行此代码。

如果您想了解交换机的工作原理,可以阅读

然而,看起来您只是想稍微清理一下您的函数。虽然我不是专家,但我会这样做:

function checkModel( $model ) {
    $strings = array( 'TMP' , 'TMT' , 'TMS' , 'IcomSpeed' , 'TMSSA' , 'IcomsDisplay' , 'ITV' , 'Terminal' , 'IcomsTexto' , 'PIV' , 'TM150' , 'TM60');
    foreach( $strings as $s ) 
        if( strpos( $model , $s ) !== FALSE )
            return $s . " - Default";
    return "Default Model";
}

我还没有尝试运行此代码。

如果您想了解交换机的工作原理,可以阅读

然而,看起来您只是想稍微清理一下您的函数。虽然我不是专家,但我会这样做:

function checkModel( $model ) {
    $strings = array( 'TMP' , 'TMT' , 'TMS' , 'IcomSpeed' , 'TMSSA' , 'IcomsDisplay' , 'ITV' , 'Terminal' , 'IcomsTexto' , 'PIV' , 'TM150' , 'TM60');
    foreach( $strings as $s ) 
        if( strpos( $model , $s ) !== FALSE )
            return $s . " - Default";
    return "Default Model";
}

我还没有尝试运行此代码。

如果您想了解交换机的工作原理,可以阅读

然而,看起来您只是想稍微清理一下您的函数。虽然我不是专家,但我会这样做:

function checkModel( $model ) {
    $strings = array( 'TMP' , 'TMT' , 'TMS' , 'IcomSpeed' , 'TMSSA' , 'IcomsDisplay' , 'ITV' , 'Terminal' , 'IcomsTexto' , 'PIV' , 'TM150' , 'TM60');
    foreach( $strings as $s ) 
        if( strpos( $model , $s ) !== FALSE )
            return $s . " - Default";
    return "Default Model";
}

我还没有试着运行这段代码。

Thx的解释,我喜欢你的想法与数组^^Thx花时间为我写代码,我真的很感激。这正是我想要的:DThx的解释,我喜欢你的想法与数组^^Thx花时间为我写的代码,我真的很感激。这正是我想要的:DThx的解释,我喜欢你的想法与数组^^Thx花时间为我写的代码,我真的很感激。这正是我想要的:DThx的解释,我喜欢你的想法与数组^^Thx花时间为我写的代码,我真的很感激。这正是我想要的:我从未使用过“foreach”,但我尝试过使用普通的“for”的相同方法,效果很好,但我仍然不知道它是否更快或相同:/@Booba_u2012当使用PHP或其他解释语言时(除非你有PHP JIT或AOT编译器),你不应该关心微优化,只需确保算法的空间和计算复杂度是合适的()我从未使用过“foreach”,但我尝试了使用普通“for”的相同方法,效果很好,但我仍然不知道它是否更快或相同:/@Booba_uu2012在使用PHP或其他解释语言时(除非您有PHP JIT或AOT编译器)你不应该关心微观优化,只要确保你的算法的空间和计算复杂度是合适的()我从来没有用过“foreach”,但我用同样的方法尝试了一个普通的“for”,效果很好,b