1.php函數
1.使用者自訂函數
複製代碼 代碼如下:function 函數名字([$parameter,[,…]])
{
//函數代碼
}
注意:函數名不能與系統函數或使用者已經定義的函數重名。
$parameter為函數參數,函數一般可以有0個或多個參數,
2.參數的傳遞
參數是通過值來傳遞的,例如前面定義func()函數是通過變數$a和$b的值傳遞的。通過值傳遞參數不會因為函數內部參數值的變化而改變函數外部的值。 複製代碼 代碼如下:<?php
function color(&$col) //定義函數color()
{
$col="yellow";
}
$blue="blue";
color($blue); //調用函數color(),參數使用變數$blue
echo $blue; //輸出"yellow"
?>
3.函數變數的範圍
在主程式定義的變數和在函數中定義的變數都是局部變數。在函數中定義的變數只能在函數內部使用。在主程式中定義的變數
只能在主程式中使用,而不能在函數中使用。 複製代碼 代碼如下:<?php
function sum()
{
$count=2;
}
sum();
echo $count;
?>
由於函數中的變數無法作用於函數外部,所以上面運行時出錯,提示$count變數未定義。
4.函數的傳回值
函式宣告時,在函數代碼中使用return 語句可以立即結束函數的運行,程式返回到時調用該函數的下一條語句。 複製代碼 代碼如下:<?php
function my_function($a=1)
{
echo $a;
return; //結束函數的運行,下面的語句將不被運行
$a++;
echo $a;
}
my_function(); //輸出1
?>
中斷函數並不是return語句常用的功能,許多函數使用return語句返回一個值來與調用它們的代碼進行互動。<FONT color=#c0504d>函數的傳回值可以是任何類型,包括列表對象</FONT>
5.函數的調用
在函式宣告後可以被調用了,另外函數如果沒有傳回值,調用進使用函數名即可。如果函數具有傳回值,則可以將函數的傳回值賦給一個變數。 複製代碼 代碼如下://對一個數組進行升序排序的函數my_sort()
function my_sort($array)
{
for($i=0;$i<count($array);$i++)
{
for($j=$i+1;$j<count($array);$j++)
{
if($array[$i]>$array[$j])
{
$tmp=$array[$j];
$array[$j]=$array[$i];
$array[$i]=$tmp;
}
}
}
return $array;
}
$arr=array(6,4,7,5,9,2); //未排序的數組
$sort_arr=my_sort($arr); //將排序後的數組賦給$sort_arr
foreach($sort_arr as $num)
echo $num; //輸出245679
?>
6.遞迴函式
php支援遞迴函式,遞迴函式就是自己調用自已,可以實現迴圈的作用。
求10!
例如: 複製代碼 代碼如下:<?php
function factorial($n)
{
if($n==0)
return 1; //如果$n為0則返回1
else
return $n*factorial($n1); //遞迴調用,直到$n等於0為止 }
echo factorial(10); //輸出3628800
?>
使用遞迴一事實上要給出遞迴終止條件,否則函數將一直執行下去直到記憶體耗盡,或達到最大調用次數。
使用遞迴一事實上要給出遞迴終止條件,否則函數將一直執行下去直到記憶體耗盡,或達到最大調用次數。
7.變數函數
php有函數變數這個概念,在變數的後面加上一對小括弧就構成一個變數函數。
$count();
8.系統函數
9.執行個體-設計一個計算機程式 複製代碼 代碼如下:<html>
<head>
<title>計算機程式</title>
</head>
<body>
<form method=post>
<table>
<tr><td><input type="text" size="4" name="number1">
<select name="caculate">
<option value="+">+
<option value="-">-
<option value="*">*
<option value="/">/
</select>
<input type="text" size="4" name="number2">
<input type="submit" name="ok" value="計算">
</td>
</tr>
</table>
</form>
</body>
</html>
<?php
function cac($a, $b, $caculate) //定義cac函數,用於計算兩個數的結果
{
if($caculate=="+") //如果為加法則相加
return $a+$b;
if($caculate=="-") //如果為減法則相減
return $a-$b;
if($caculate=="*") //如果為乘法則返回乘積
return $a*$b;
if($caculate=="/")
{
if($b=="0") //判斷除數是否為0
echo "除數不能等於0";
else
return $a/$b; //除數不為0則相除
}
}
if(isset($_POST['ok']))
{
$number1=$_POST['number1']; //得到數1
$number2=$_POST['number2']; //得到數2
$caculate=$_POST['caculate']; //得到運算的動作
//調用is_numeric()函數判斷接收到的字串是否為數字
if(is_numeric($number1)&&is_numeric($number2))
{
//調用cacFunction Compute結果
$answer=cac($number1,$number2,$caculate);
echo "<script>alert('".$number1.$caculate.$number2."=".$answer."')</script>";
}
else
echo "<script>alert('輸入的不是數字!')</script>";
}
?>