为什么回归只返回第一个?

时间:2017-04-25 05:40:43

标签: php

当我执行以下操作时:

  if(ICL_LANGUAGE_CODE=='it'){
    $it1 = "<li><span class='glyphicon glyphicon-time' aria-hidden='true'></span> Il periodo antico</strong> è dal <strong>3500 a.C. fino al 476 d.C.</strong></li>";
    $it2 = "<li><span class='glyphicon glyphicon-time' aria-hidden='true'></span> Il periodo medievale</strong> è dal <strong>476 dC fino al 1492 d.C.</strong></li>";
    $it3 = "<li><span class='glyphicon glyphicon-time' aria-hidden='true'></span> Il periodo moderno</strong> è dal <strong>1492 dC fino al 1789 d.C.</strong></li>";
    $it4 = "<li><span class='glyphicon glyphicon-time' aria-hidden='true'></span> Il periodo Contemporaneo</strong> va dal <strong>1789 d.C. fino ad oggi.</strong></li>";
    return $it1; 
    return $it2; 
    return $it3; 
    return $it4;
  }

只返回第一个:

<li><span class='glyphicon glyphicon-time' aria-hidden='true'></span> Il periodo antico</strong> è dal <strong>3500 a.C. fino al 476 d.C.</strong></li>

我尝试使用echo代替return并且它有效,但它将它放在布局之外因此我真的需要使用return但我不明白为什么只有一个是返回。

5 个答案:

答案 0 :(得分:6)

return函数意味着进一步停止执行代码。

任何功能都不能超过1次返回。每当函数第一次返回时,它立即停止并返回第一个函数。

你应该试试这个

if(ICL_LANGUAGE_CODE=='it'){
    $it1 = "<li><span class='glyphicon glyphicon-time' aria-hidden='true'></span> Il periodo antico</strong> è dal <strong>3500 a.C. fino al 476 d.C.</strong></li>";
    $it1 .= "<li><span class='glyphicon glyphicon-time' aria-hidden='true'></span> Il periodo medievale</strong> è dal <strong>476 dC fino al 1492 d.C.</strong></li>";
    $it1 .= "<li><span class='glyphicon glyphicon-time' aria-hidden='true'></span> Il periodo moderno</strong> è dal <strong>1492 dC fino al 1789 d.C.</strong></li>";
    $it1 .= "<li><span class='glyphicon glyphicon-time' aria-hidden='true'></span> Il periodo Contemporaneo</strong> va dal <strong>1789 d.C. fino ad oggi.</strong></li>";
    return $it1;
}

答案 1 :(得分:1)

因为你正在返回,它会停止执行后面的任何内容,并返回你告诉它的变量/内容。解决方案是立即返回整个字符串,或者如果需要单独返回,则返回一个数组。

if(ICL_LANGUAGE_CODE=='it'){
    $it1 = "<li><span class='glyphicon glyphicon-time' aria-hidden='true'></span> Il periodo antico</strong> è dal <strong>3500 a.C. fino al 476 d.C.</strong></li>";
    $it1 .= "<li><span class='glyphicon glyphicon-time' aria-hidden='true'></span> Il periodo medievale</strong> è dal <strong>476 dC fino al 1492 d.C.</strong></li>";
    $it1 .= "<li><span class='glyphicon glyphicon-time' aria-hidden='true'></span> Il periodo moderno</strong> è dal <strong>1492 dC fino al 1789 d.C.</strong></li>";
    $it1 .= "<li><span class='glyphicon glyphicon-time' aria-hidden='true'></span> Il periodo Contemporaneo</strong> va dal <strong>1789 d.C. fino ad oggi.</strong></li>";
    return $it1;
}

上面会返回一个包含所有内容的字符串。您可以将它们作为数组返回,可以将其用作单独的行(取决于您希望如何使用此代码)。

if(ICL_LANGUAGE_CODE=='it'){
    $it1 = "<li><span class='glyphicon glyphicon-time' aria-hidden='true'></span> Il periodo antico</strong> è dal <strong>3500 a.C. fino al 476 d.C.</strong></li>";
    $it2 = "<li><span class='glyphicon glyphicon-time' aria-hidden='true'></span> Il periodo medievale</strong> è dal <strong>476 dC fino al 1492 d.C.</strong></li>";
    $it3 = "<li><span class='glyphicon glyphicon-time' aria-hidden='true'></span> Il periodo moderno</strong> è dal <strong>1492 dC fino al 1789 d.C.</strong></li>";
    $it4 = "<li><span class='glyphicon glyphicon-time' aria-hidden='true'></span> Il periodo Contemporaneo</strong> va dal <strong>1789 d.C. fino ad oggi.</strong></li>";
    return array($it1, $it2, it3, it4); 
}

答案 2 :(得分:1)

发生这种情况是因为在return - $it1函数完成后,其中没有其他代码被执行,控件又返回到调用它的位置。< / p>

如果您需要取回所有$it - s,您可以返回它们的数组,如下所示:

return array($it1, $it2, $it3, $it4);

答案 3 :(得分:1)

返回是结束您当前所在功能的关键字。 像PHP这样的软类型语言的缺点是可以忘记这个事实。

(你有没有误解它是'收益'?)

由于函数上下文,Echo无法正确显示。 您可以返回包含所需值的单个数组,然后在upper函数中显示它们。

$arr = [val1, val2, val3, ... ]
return $arr

答案 4 :(得分:1)

在任何语言中,\DRUPAL::VERSION表示该函数随后停止执行。在某些语言中,您不能在return语句之后添加任何内容。如果您需要从方法中返回多个值,则可以执行以下任何操作。由于它是 PHP ,我将为您提供一些PHP示例

return

function pass by reference

function passByReference($param1, &$referencedParam1){
    // your code here,
    // change the referenced value here
    $referencedParam1 = $newValue;
    return $anotherCalculatedValue;
}

return array from a method

我宁愿返回一个数组,而不是字符串连接。您可以随意使用它,但如果您想以任何其他形式使用它,则返回连接的字符串将阻止您在任何地方使用它。