2017-04-25 163 views
-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>"; 
    $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,但我不明白爲什麼只有一個返回。

+0

它只返回第一個,因爲你從第一個返回 – Akshay

回答

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

因爲您正在返回,所以會停止執行,並返回您告訴它的變量/內容。解決方法是一次返回整個字符串,或者如果單獨需要,則返回一個數組。

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); 
} 
1

這是怎麼回事,因爲後return -ing $it1功能完成後,在它沒有進一步的代碼會被執行並且控制回到它是從所謂的地方。

如果你需要找回所有的$it -s把他們退回去的陣列,水木清華這樣的:

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

回報是結束您目前在功能的關鍵字 的缺點。像PHP這樣的軟式語言可以忽略這個事實。

(難道你誤會了它作爲「收益率」?)

回聲不顯示由於功能方面的適當肯定。 您可以返回一個包含您想要的所有值的數組,然後將其顯示在上面的函數中。

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

在任何語言中,return表示該函數在之後停止執行。在某些語言中,您不能在return聲明之後放置任何內容。如果您需要從方法中返回多個值,則可以執行以下任何操作。由於這是PHP,我會代替字符串給你用PHP

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

function pass by reference

function returnArray($param1, $param2, $param3){ 
    // your code here 
    // return an array instead of a particular value 
    return [$param1, $param2, $param3]; 
} 

var_dump(returnArray(1,2,3)); 
var_dump(implode(", ", returnArray(1,2,3))); 

return array from a method

我寧願返回一個數組一些例子,級聯。你可以使用它,只要你喜歡,但是如果你想以任何其他形式使用它,返回連接字符串將會阻止你在任何地方使用它。

相關問題