4-3-3 函數的回傳值
[color=DarkRed][size=4][b]4-3-3 函數的回傳值[/b][/size][/color]前面章節,我們說明了函數的使用方法與參數的傳遞,但是呼叫函數後,函數直接將處理結果在函數內就輸出至網頁中,嚴格來說,這種類型的函數只能稱之為「副程式(Subprogram)」,因為函數沒有將處理結果傳回呼叫它的主程式區段。
要讓將處理結果傳回呼叫它的主程式區段,可在函數即將結束之前,使用「return」命令傳回特定的資料值成為函數的回傳值,例如:[code]<?
function MyTest($num)
{
$ans=1;
for ($x=1 ; $x<=$num ; $x++)
{
$ans=$ans * $x ;
}
return $ans; //回傳運算結果
}
?>[/code][color=Red] 提示[/color]
呼叫函數時,有參數傳遞時,參數之外要用一對括號包括起來,若無參數傳遞時,加不加括號都可以,不過,習慣上在呼叫函數時,即使沒有參數傳遞都還是會加上一對括號。 [color=Magenta]實做學習[/color]:
寫一函數,傳入數字1~12,接著回傳該數字對應的季節,例如傳入參數3回傳「春天」。(範例光碟test04_01.php)
test04_01.php[code]<?
function moontest($moon)
{
switch ($moon)
{
case 1: case 2: case 3:
return "春天";
break;
case 4: case 5: case 6:
return "夏天";
break;
case 7: case 8: case 9:
return "秋天";
break;
case 10: case 11: case 12:
return "冬天";
break;
default:
echo "錯誤";
}
}
?>
<HTML>
<HEAD>
<TITLE>test04_01</TITLE>
</HEAD>
<BODY>
<?
//抓取系統日期時間目前的月份
$mymoon=date("n");
//呼叫函數取得對應的季節
$season=moontest($mymoon);
echo "目前季節為 : $season";
?>
</BODY></HTML>[/code] [color=Magenta]實做學習[/color]:
寫一函數,將傳入的字串反向列印出來,例如傳入Microsoft回傳輸出tfosorciM,本題有點深度,運用到內建的strlen()、substr()字串函數。(範例光碟test04_02.php)
test04_02.php[code]<?
function Mystring($testword)
{
$strlong=strlen($testword);
$ansstr="";
for ($x=$strlong ; $x>=0 ; $x--)
{
$ansstr=$ansstr . substr($testword,$x,1);
}
return $ansstr;
}
?>
<HTML>
<HEAD>
<TITLE>test04_02</TITLE>
</HEAD>
<BODY>
<?
$test="Microsoft";
echo (Mystring($test));
?>
</BODY></HTML>[/code] [p=30, 2, left][size=2][size=14pt][font=Courier New]strlen()[/font][/size][font=細明體][size=14pt]函數[/size][/font][size=14pt][/size][/size][/p][p=30, 2, left][size=2][font=細明體]語法:[/font][color=black][font=Courier New]strlen[/font][/color][font=細明體]([/font][color=black][font=Courier New]”string”[/font][/color][font=細明體])[/font][/size][/p][p=30, 2, left][size=2][font=細明體]用途:[/font][color=#000000][font=細明體]計算引數中字串的字元數目([/font][font=Courier New]Long[/font][font=細明體])[/font][/color][/size][/p][table=98%,#e6e6e6]
[tr][td=1,1,457][p=30, 2, left][color=blue][font=Times New Roman][size=2]$myStr= “Hello PHP”;[/size][/font][/color][/p][p=30, 2, left][color=blue][font=Times New Roman][size=2]$myLen = strlen($mystr); //$'myLen = 9[/size][/font][/color][/p][/td][/tr]
[/table]
[p=30, 2, left][font=Courier New][size=2][color=#000000][/color][/size][/font][/p][p=30, 2, left][size=2][size=14pt][font=Courier New]substr()[/font][/size][font=細明體][size=14pt]函數[/size][/font][size=14pt][/size][/size][/p][p=30, 2, left][size=2][font=細明體]語法:[/font][color=#000000][font=Courier New]strsub[/font][font=細明體](字串[/font][font=Courier New], [/font][font=細明體]開始字元[/font][font=Courier New], [/font][font=細明體]指定長度)[/font][/color][/size][/p][p=30, 2, left][size=2][font=細明體]用途:[/font][color=#000000][font=細明體]傳回由字串中指定字元數開始,由左至右取得指定長度字元的字串[/font][/color][/size][/p][table=98%,#e6e6e6]
[tr][td=1,1,480][p=30, 2, left][color=blue][font=Times New Roman][size=2]$myStr= “Hello PHP”; [/size][/font][/color][/p][p=30, 2, left][color=blue][font=Times New Roman][size=2]$strMid = substr($myStr); //$'strMid = "lo P"[/size][/font][/color][/p][/td][/tr]
[/table] [code]
<?php
$myStr= "Hello PHP";
$strMid = substr($myStr,3,4); //strMid = "lo P"
echo $strMid;
?>
[/code]
頁:
[1]