PHP系列(二)PHP函數的聲明與應用

來源:互聯網
上載者:User

標籤:php函數的聲明與應用

(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><h1>".$tablename."</h1></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

 


本文出自 “Linux獄長” 部落格,請務必保留此出處http://sswqzx.blog.51cto.com/2494644/1963553

PHP系列(二)PHP函數的聲明與應用

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.