Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 是否有快捷方式打开fn(案例值)的结果?_Php_Switch Statement - Fatal编程技术网

Php 是否有快捷方式打开fn(案例值)的结果?

Php 是否有快捷方式打开fn(案例值)的结果?,php,switch-statement,Php,Switch Statement,这段代码运行良好。但这很费劲。这是什么捷径?像这样 switch (true) { case array_key_exists('view', $load): # code... break; case array_key_exists('model', $load): # code... break; default: # code... break; } 但是这不起作用在

这段代码运行良好。但这很费劲。这是什么捷径?像这样

switch (true) {
    case array_key_exists('view', $load):
        # code...
        break;
    case array_key_exists('model', $load):
        # code...
        break;
    default:
        # code...
        break;
}

但是这不起作用

在PHP中,这样的操作没有捷径

switch ($a = array_key_exists($a, $load)) {
    case 'view':
        # code...
        break;
    case 'model':
        # code...
        break;
    default:
        # code...
        break;
}
但是,原始代码可能应该按照以下方式编写

#check if exists
if(array_key_exists($a, $load))  

#check what exists
switch ($a) {
    case 'view':
        # code...
        break;
    case 'model':
        # code...
        break;
    default:
        # code...
        break;
}

#case for nothing matched
else{
  # code...
}

您的第二个开关只能是
true
false
而不是
视图
型号
…不,不能用
switch
以任何其他方式表示。这与OPs代码的结果不同(这是对开关的滥用,而不是if/else if.)@user2864740,这与OPs代码的结果不同,请详细说明,例如,有什么区别?因为我什么都看不见。
if (array_key_exists('view', $load)) {
    // ..
} else if (array_key_exists('model', $load)) {
    // ..
} else {
    // ..
}