您好,登錄后才能下訂單哦!
(1)函數的定義和應用
function 函數名(參數1,參數2,參數3......)
?{
??? 函數體
?????return 返回值
?}
?
<?php
table(3,8,"學生成績表","red","green");
function table($row,$col, $tablename, $bgcolor1,$bgcolor2)
{
?echo "<table border=1 width=800>";
?echo"<caption><h2>".$tablename."</h2></caption>";
??$i=0;
??$k=0;
??while($i<$row){
?
?if($i%2==0)
?????$bgc=$bgcolor1;
??else
?????$bgc=$bgcolor2;
?
??echo "<tr bgcolor='".$bgc."'>";
??$j=0;
?while($j<$col)
{
??echo "<td>".$k++."</td>";
???$j++;
}
echo "</tr>";
$i++;
}
?echo"</table>";
}
?
table(5,2,"學生信息表","yellow","bule");
table(8,12,"學生表","#f00ff","#ffffaa");
?>
顯示出三個表(學生成績表,學生信息表,學生表)
?
(2)函數局部變量
?
函數體結束、變量釋放
<?php
function fun1()
{??
??$a=100;
??echo $a;
}
?
function fun2()
{
?$b=200;
?echo $b;
}
fun1();
fun2();
?>
顯示:
100
200
?
(3)函數的全局變量
?
<?php
$a=200;
$b=500;
function fun1()
{
?echo $GLOBALS["a"];
??
}
?
function fun2()
{
???global $b;
???echo $b;
}
fun1();
fun2();
?>
顯示:
200
500
?
?
(4)函數的靜態變量
?
靜態變量用在累加
<?php
function test()
{
??static $a=0; //靜態變量
??echo $a."<br>";
???$a++;
}
test();
test();
test();
?>
顯示:
0
1
2
?
function_exists();判斷函數是否存在
<?php
function test()
{
??static $a=0;
??$a++;
}
?test();
if(function_exists("test1")){
???????? echo"test1 is exists";
}else{
???????? echo"test1 is not exists";
}?>
顯示:test1 is exists
?
函數參數傳遞
<?php
?function fun1($a=1, $b=2, $c=3, $d=4, $e=5)
{
??echo $a."<br>";
??echo $b."<br>";
??echo $c."<br>";
??echo $d."<br>";
??echo $e."<br>";
?
}
fun1(a,b,c,d);
?>
顯示:a b c d 5
?
?
func_get_args(); //獲取方法中參數的數組
<?php
function fun($a)
{
??$args=func_get_args(); //獲取方法中參數的數組
???echo count($args);
???echo "<br>";
???echo $args[4];
}
fun(1,2,3,5,688);
?>
顯示為:5? 688
(5)變量函數
?
<?php
function test()
{
????echo "#######<br>";
}
$a=test;
$a();
?>//變量函數
顯示:#######
?
(6)遞歸函數
?
<?php
function demo($a){
?echo "#####".$a."<br>";
? if($a>0)
?demo(--$a);
}
demo(3);
?>//遞歸函數
顯示為:
#####3
#####2
#####1
#####0
?
?
<?php
function demo($a){
?if($a > 1){
???$r=$a*demo($a-1);
??}else {
??$r=$a;
? }
return $r;
}
echo demo(4);
?>遞歸調用
4x3x2x1=24
?
function fun($a){
???????? echo$a."<br>";
???????? if($a>0){
?????????????????? fun($a-1);
???????? }else{
?????????????????? echo"-------<br>";
?????????????????? }
???????? echo$a."<br>";
}
fun(4);
顯示:
4
3
2
1
0
-------
0
1
2
3
4
?
(7)回調函數
函數當作參數傳遞
function ?fnCallBack( $msg1 , $msg2 )
{
???echo 'msg1:'.$msg1;
???echo "<br />\n";
???echo 'msg2:'.$msg2;
}
$fnName = "fnCallBack";
$params = array( 'hello' , 'world' );
call_user_func_array( $fnName , $params );
顯示為:
msg1:hello
msg2:world
?
$arr = array(1,5,7);
Function mycon($a,$b){
???????? If($a>$b){
???????? Return1;
}elseif($a<$b){
Return -1;
}else{
Return 0;
}
}
Usort($arr,”mycon”);
Print_r($arr);
?
(8)內部函數
?
<?php
function demo($php,$java,$oracle){
?function php($php){
?????if($php >=60 && $php<=100){
?????return "php成績及格";
??????}else{
???????return "php成績不及格";
??????}
}
?
?function java($java){
?????if($java >=60 && $java<=100){
?????return "java成績及格";
??????}else{
???????return "java成績不及格";
??????}
}
?
?function oracle($oracle){
?????if($oracle >=60 && $oracle<=100){
?????return "oracle成績及格";
??????}else
{
???????return "oracle成績不及格";
??????}
}
?
echo php($php)."<br>";
echo java($java)."<br>";
echooracle($oracle)."<br>";
?
?
$total=$php+$oracle+$java;
$anv=$total/3;
?
echo "你的總成績是".$total."<br>";
echo "你的平均成績是".$anv."<br>";
}
demo(10,80,70);
?>
顯示為:
php成績不及格
java成績及格
oracle成績及格
你的總成績是160
你的平均成績是53.3333333333
?
(9)加載自定義函數庫
Include()?速度快腳本執行包含時、當處理失敗時、會產生一個警告、
Require() 會導致一個致命錯誤
require()將一個文件在預處理期間被導入、像把該文件粘貼到使用函數的地方
include_once? require_once這二個函數如果被包含了。只會被包含一次、不會重復
?
(10)匿名函數
<?php
$greet?=?function($name){
????printf("Hello?%s\r\n",?$name);
};
$greet('World');
$greet('PHP');
(11)php引用參數的函數
只有在內存變量中才有地址、有引用關系的二個變量、一個變、另一個就變、
如果在函數說明中、有&出現、說明這個 參數是一個引用參數、調用時傳參數時、就必須傳一個變量
?
$b= 20;
functiondemo(&$a){
??? $a=100;
}
echo$b."<br>";
demo($b);
echo$b."<br>";
顯示為:
20
100
?微信掃一掃?、關注公眾號
?? 不定時分享資料視頻
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。