Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.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/email/3.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 当使用回路时,是否需要断开开关?_Php - Fatal编程技术网

Php 当使用回路时,是否需要断开开关?

Php 当使用回路时,是否需要断开开关?,php,Php,我想知道当使用“返回”时是否需要在“切换”功能中使用“中断” 我已经试过了,没有“中断”效果很好。但我需要知道这是否安全。谢谢。您不需要中断,返回将停止函数的执行 (供参考:注明: 如果从函数中调用,return()语句将立即结束当前函数的执行 )不,在开关盒语句中不需要中断。中断实际上是可选的,但请谨慎使用。是的,您可以使用返回而不是中断 break是可选的,用于防止在所有其他case语句中“掉落”。因此return可以以类似的方式使用,因为return结束函数执行 另外,如果您所有的案例语句

我想知道当使用“返回”时是否需要在“切换”功能中使用“中断”


我已经试过了,没有“中断”效果很好。但我需要知道这是否安全。谢谢。

您不需要中断,返回将停止函数的执行

(供参考:注明:

如果从函数中调用,return()语句将立即结束当前函数的执行


)不,在
开关盒
语句中不需要
中断
中断
实际上是可选的,但请谨慎使用。

是的,您可以使用
返回
而不是
中断

break
是可选的,用于防止在所有其他
case
语句中“掉落”。因此
return
可以以类似的方式使用,因为
return
结束函数执行

另外,如果您所有的
案例
语句如下所示:

case'foo':
$result=find_result(…);
打破
switch
语句之后,您只需使用
return find_result(…)
返回$result
在每种
情况下
都会使代码更具可读性


最后,不要忘记添加
default
案例。如果您认为您的代码永远不会达到
默认值
的情况,那么您可以使用该函数,因为您永远无法确定

您不需要它,但我强烈建议您在任何情况下都使用它作为良好的实践。

不,这不是必要的,因为当调用关键字return时,它将指示调用开关/案例的特定函数已经结束。

Break只是一个警告语句,用于限制开关结构的控制进入另一个案例…例如,如果您有三个案例语句,并且value是第一个案例,那么没有任何中断结构的用例,则将执行以下所有用例,尽管只满足第一个用例的条件。。。 Return可以执行asme功能,因此如果使用Return代替break,则不会出现问题,因为Return将从开关箱语句中夺走控制权,而开关箱语句是此时需要的。。。。。。
希望它有帮助……

return将控制权返回到调用方法,其中asbreak跳转到开关块后的第一条指令。

从PHP 8开始(2020年11月),您可以使用match:

<?php

function test($string) {
   return match ($string) {
      'test1' => 'Test 1: ',
      'test2' => 'Test 2: '
   } . $string;
}

谢谢你Luzhin,这就是我所想的。没有意义,因为返回在执行时明显存在=)代码越少越好。代码越少!=更好。去打高尔夫。我宁愿使用可读的、显式的代码,而不是过度优化的代码,这样代码就可以放在一行上,而牺牲可读性和可理解性。有些编译器在开关返回后警告不可执行代码,有些则没有。这是我个人的喜好,至少对我来说,这取决于我被开关咬了多少次,我喜欢看到破口。如果$string='testx';
<?php

function test($string) {
   return match ($string) {
      'test1' => 'Test 1: ',
      'test2' => 'Test 2: '
   } . $string;
}
<?php

function test($string) {
   return [
      'test1' => 'Test 1: ',
      'test2' => 'Test 2: '
   ][$string] . $string;
}