我有基本问题给你们
我有php函数,它验证并创建给定类型的文件处理程序名称,
但是我只是想知道以下代码是否转到了else,是否会执行创建guid的编码的下一行还是会被忽略?
private function fileFormat($type=false){
if($type=='CreditCard')
$prefix='CC-';
elseif($type=='DirectDebit')
$prefix='DD-';
else
return false;
$date = $prefix.'-'.date('d-m-Y', time());
$guid = '' . md5($date) . '.csv';
return $guid;
}
答案 0 :(得分:2)
他们将被忽略。 <{1}}语句之后的任何内容都不会被执行。
答案 1 :(得分:2)
每当执行return false
时,将不会执行以下行。但是,您必须确保在您调用函数的位置100%区分return false
和return $guid
答案 2 :(得分:2)
执行return语句后不再执行任何行。
答案 3 :(得分:2)
只是它不会执行(忽略)return
之后的行。
答案 4 :(得分:1)
该函数将返回,并且在遇到的return语句之后的所有内容都不会被执行。
答案 5 :(得分:1)
这个想法是控制返回到调用方法....所以这些行永远不会执行。 例如,如果您的IDE是好的,那么在返回后的冗余语句中会给出警告,例如:
function PrintHelloWorld()
{
if($userPresent)
{
echo "Hello World" ;
}
return "World empty!";
$something = "blah" ; //redundant (will never execute)
$something+="Blah" ; //redundant (will never execute)
//A good IDE should give warnings. But you usually see them as grayed out
}
答案 6 :(得分:1)
它们将被忽略,因为返回将由else(默认)情况执行。
答案 7 :(得分:1)
不要打败死马,现在有很多答案说明同样的事情......但这是我的澄清。
return
执行后,不会执行任何剩余代码。您设置代码的方式很好,假设如果遇到false
的{{1}},则需要返回$type
。这是一个常见的控制流程,优先于设置标志并在返回前检查缺陷。
if ($myCondition_1) {
$a = 1;
} elseif ($myCondition_2) {
$a = 2;
} else {
return False;
}
other_operation_on_a($a);
return $a;
首选(对我而言):
$a = False;
if ($myCondition_1) {
$a = 1;
} elseif ($myCondition_2) {
$a = 2;
}
if ($a !== False) {
other_operation_on_a($a);
}
return $a;