php函數(shù)應(yīng)用

自定義函數(shù)語(yǔ)法格式

  <?php

table();
echo "1111111111111111111<br>";
table();

echo "xxxxxxxxxxxxxxxxxxxxxxx<br>";
table();

echo "hello world <br>";
table();
table();
table();

function table(){

    echo '<table border="1" width="800" align="center">';
    echo '<caption><h1>表格</h1></caption>';

    for($i=0; $i<10; $i++) {
        $bg = ($i%2==0) ? "#cccccc" : "";

        echo '<tr bgcolor="'.$bg.'">';
        for($j=0; $j < 20; $j++ ) {
            echo '<td>'.($i*10+$j).'</td>';
        }
        echo '</tr>';
    }

    echo '</table>';
}

table();

自定義函數(shù)參數(shù)

  <?php

table("用戶表",10, 10, 2, 'red', 1, 800, 'left');  //實(shí)參 (實(shí)際的參數(shù))
table("成績(jī)表", 50, 5, 3, 'green', 10, 400, 'right');

//聲明函數(shù)時(shí),提供的參數(shù)炉擅, 形參(形式上的參數(shù))
function table($tablename, $rows, $cols, $num, $color, $border, $width, $align){


    echo '<table border="'.$border.'" width="'.$width.'" align="'.$align.'">';
    echo '<caption><h1>'.$tablename.'</h1></caption>';

    for($i=0; $i<$rows; $i++) {
        $bg = ($i%$num==0) ? $color : "";

        echo '<tr bgcolor="'.$bg.'">';
        for($j=0; $j < $cols; $j++ ) {
            echo '<td>'.($i*10+$j).'</td>';
        }
        echo '</tr>';
    }

    echo '</table>';
}

自定義函數(shù)返回值

<?php

error_reporting(0);

echo table("用戶表",10, 10, 2, 'red', 1, 800, 'left');  //實(shí)參 (實(shí)際的參數(shù))

file_put_contents("demo.html", table("成績(jī)表", 50, 5, 3, 'green', 10, 400, 'right'));

//聲明函數(shù)時(shí)膘侮,提供的參數(shù), 形參(形式上的參數(shù))
function table($tablename, $rows, $cols, $num, $color, $border, $width, $align){


    $str .= '<table border="'.$border.'" width="'.$width.'" align="'.$align.'">';
    $str .= '<caption><h1>'.$tablename.'</h1></caption>';

    for($i=0; $i<$rows; $i++) {
        $bg = ($i%$num==0) ? $color : "";

        $str.= '<tr bgcolor="'.$bg.'">';
        for($j=0; $j < $cols; $j++ ) {
            $str .= '<td>'.($i*10+$j).'</td>';
        }
        $str .= '</tr>';
    }

    $str .= '</table>';

    return $str;

    echo "#################";
}


if(function_exists("table2")) {
    echo "存在";
}else{
    echo "不存在";
}

局部變量

函數(shù)內(nèi)部聲明的變量玩徊, 只能在函數(shù)內(nèi)部調(diào)用, 這就是--------局部變量
函數(shù)的參數(shù)租悄,就是一個(gè)局部變量, 聲明成形成的恩袱, 可以在調(diào)用時(shí)泣棋,給值, 傳值

function demo($sex) {
    $age = 30;



    echo "高老師很帥{$age}, 是{$sex}<br>";
}

demo("男");

echo $sex;

全局變量

函數(shù)內(nèi)部聲明的變量憎蛤, 只能在函數(shù)內(nèi)部調(diào)用, 這就是--------局部變量
函數(shù)的參數(shù)外傅,就是一個(gè)局部變量, 聲明成形成的俩檬, 可以在調(diào)用時(shí)萎胰,給值, 傳值
全局變量棚辽, 在函數(shù)外部聲明的變量技竟,可以在每個(gè)函數(shù)中使用。 (順序)
在函數(shù)內(nèi)部如果需要使用函數(shù)外部的變量屈藐, 需要使用global關(guān)鍵字榔组,將外部變量引入

$_POST['a']=100;
$_GET['b']=300;

function demo() {

    echo $_POST['a'];
    

}

demo();

靜態(tài)變量

在函數(shù)中聲明的靜態(tài)變量, 只在第一次調(diào)用時(shí)聲明.
第二次以后联逻, 一看是靜態(tài)變量搓扯, 就先到靜態(tài)區(qū)中,看一下有沒(méi)有這個(gè)變量包归, 如果有就使用锨推, 而不去再聲明 
靜態(tài)變量,在同一個(gè)函數(shù)多次調(diào)用中 共享

               static $c=99;

                  function demo() {
                      static $a = 0;

                      $a++;

                    echo $a."<br>";

                  }

                 function test() {
                  static $a = 0;

                        $a++;
                  }

                  echo $c;

                 demo();
                 demo();

                 test();
                 test();
                 test();
                 test();

                 demo();
                 demo();
                 demo();

默認(rèn)參數(shù)函數(shù)

          <?php
          function demo($name ="one",$age="two",$sex="three",$email="four"){
            echo "{$name}----{$age}---{$sex}----{$email}<br>";
          }
          demo();
          demo("妹子");
          demo("妹子",20);
          demo("妹子",20,"女");
          demo("妹子",20,"女",'mz@lampbrother.net');
          demo()
           ?>

可變參數(shù)

          <?php
         function demo(){
          $arr=func_get_args();
          $sun=0;
          for ($i=0; $i < count($arr); $i++) {
             $sum +=$arr[$i];
          }
          return $sum;

            }

            echo demo(1,2,3,4,5,6,7,8,9);

          ?>

變量函數(shù)

如果將一個(gè)函數(shù)名稱(字符串), 給一個(gè)變量(字符串), 然后在這個(gè)變量后面加上括號(hào), 就會(huì)調(diào)用這個(gè)變量值對(duì)應(yīng)函數(shù)

            <?php
                    function add($a,$b){
                      return $a+$b;
                   }
                    function chen($a,$b){
                      return $a*$b;
               }
               function chu($a,$b){
                 if ($b!=0)
                   return $a/$b;
                 else
                   return false;
               }
                   $var ="add";
                   $var ="chen";
                   $var ="chu";
                   echo $var(10,20);
                   add(10,20);
              ?>

回調(diào)函數(shù)

在使用一個(gè)函數(shù)的時(shí)候换可, 如果傳一個(gè)變量椎椰, 不能解決多大的問(wèn)題, 就需要將一個(gè)過(guò)程進(jìn)入到函數(shù)中沾鳄, 改變函數(shù)的執(zhí)行行為.
在函數(shù)的調(diào)用時(shí)慨飘, 在參數(shù)中傳的不是一個(gè)變量或一個(gè)值, 而是一個(gè)函數(shù)译荞, 這就是回調(diào)函數(shù)參數(shù)

<?php
  $arr =array("aaa","aaaaaaa","a","aaaaa","aaaaaaaaaaaaaa","ssssss");
    function mycom($a,$b){
      if(strlen($a)>strlen($b))
        return 1;
     else if(strlen($a)<strlen($b))
        return -1;
     else
        return 0;
      }
        print_r($arr);
        usort($arr,"mycom");
        echo '<br>';
        print_r($arr);
 ?>

制作回調(diào)函數(shù)

在使用一個(gè)函數(shù)的時(shí)候瓤的, 如果傳一個(gè)變量, 不能解決多大的問(wèn)題磁椒, 就需要將一個(gè)過(guò)程進(jìn)入到函數(shù)中堤瘤, 改變函數(shù)的執(zhí)行行為.
在函數(shù)的調(diào)用時(shí), 在參數(shù)中傳的不是一個(gè)變量或一個(gè)值浆熔, 而是一個(gè)函數(shù)本辐, 這就是回調(diào)函數(shù)參數(shù)
制作回調(diào)函數(shù)

 <?php
   function demo($num,$n){
     for($i=0;$i<$num;$i++){
       if($n($i))
         continue;
       echo $i."<br>";
     }
   }
   function test($i){
     if($i==strrev($i))
       return true;
     else
       return false;
   }
   demo(500,"test");
 ?>

制作回調(diào)函數(shù)

參數(shù)個(gè)數(shù)如果是變長(zhǎng)時(shí), 就不能直接調(diào)用這個(gè)函數(shù)

<?php
function demo($num,$n){
  for($i=0;$i<$num;$i++){
    if(call_user_func_array($n,array($i)))
      continue;
    echo $i."<br>";
  }
}
function test($i){
  if($i==strrev($i))
    return true;
  else
    return false;
}
demo(500,"test");
?>              

制作回調(diào)函數(shù)

              <?php
              error_reporting(0);
              function demo($num,$n){
                for($i=0;$i<$num;$i++){
                  if(call_user_func_array($n,array($i)))
                  continue;
                  echo $i."<br>";
                }
              }
              class Filter{
                function one($i){
                  if($i%3==0){
                  return true;
                }else{
                  return false;
                }
               }
              static function two($i){
                if(preg_match('/3/',$i)){
                  return true;
                }else{
                  return false;
                }
               }
              }
              function test($i){
                if($i==strrev($i))
                return true;
                else
                return false;
              }
              demo(500,array(new Filter(),"one"));
               ?>

系統(tǒng)函數(shù)

          <?php
          $dirname="./phpmyadmin";
          function fordir($dirname){
            $dir=opendir($dirname);
            readdir($dir);
            readdir($dir);
            while($file=readdir($dir)){
              $nfile=$dirname.'/'.$file;
              if(is_dir($nfile)){
                echo "目錄:{$nfile}<br>";
              }else{
                echo "文件:{$nfile}<br>";
              }
            }
            closedir($dir);
          }
          fordir($dirname);
         ?>

遞歸函數(shù)

            <?php
              $dirname="./phpmyadmin";
              function fordir($dirname){
                $dir = opendir($dirname);
                readdir($dir);
                readdir($dir);
                while($file=readdir($dir)){
                  $nfile=$dirname.'/'.$file;
                  if(is_dir($nfile)){
                    echo "目錄:{$nfile}<br>";
                    fordir($nfile);
                  }else{
                    echo"文件:{$nfile}<br>";
                  }
                }
                closedir($dir);
              }
              fordir($dirname);
             ?>

加載自定義函數(shù)庫(kù)

          <?php
           require "function.inc.php";
          if($a == "a")
                  include "demo.txt";
          else 
              include "demo2.html";
          one();

          two();

          three();

匿名函數(shù)

            <?php
            /*
                function funname($a, $b, $c) {
                    return $a+$b+$c;
                }

                $var = "funname";

                var_dump($var);

                echo $var(1,2,3);
             */

                $var = function($a, $b, $c) {
                    return $a+$b+$c;
                };   //一定要加分號(hào)結(jié)束

                $aa = $var;

                echo $aa(1,2,3);
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末医增,一起剝皮案震驚了整個(gè)濱河市慎皱,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌叶骨,老刑警劉巖茫多,帶你破解...
    沈念sama閱讀 216,692評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異忽刽,居然都是意外死亡天揖,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)跪帝,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)今膊,“玉大人,你說(shuō)我怎么就攤上這事伞剑“呋#” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,995評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵黎泣,是天一觀的道長(zhǎng)恕刘。 經(jīng)常有香客問(wèn)我,道長(zhǎng)抒倚,這世上最難降的妖魔是什么褐着? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,223評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮托呕,結(jié)果婚禮上含蓉,老公的妹妹穿的比我還像新娘洋访。我一直安慰自己,他們只是感情好谴餐,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,245評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著呆抑,像睡著了一般岂嗓。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上鹊碍,一...
    開(kāi)封第一講書(shū)人閱讀 51,208評(píng)論 1 299
  • 那天厌殉,我揣著相機(jī)與錄音,去河邊找鬼侈咕。 笑死公罕,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的耀销。 我是一名探鬼主播楼眷,決...
    沈念sama閱讀 40,091評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼熊尉!你這毒婦竟也來(lái)了罐柳?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,929評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤狰住,失蹤者是張志新(化名)和其女友劉穎张吉,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體催植,經(jīng)...
    沈念sama閱讀 45,346評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡肮蛹,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,570評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了创南。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片伦忠。...
    茶點(diǎn)故事閱讀 39,739評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖扰藕,靈堂內(nèi)的尸體忽然破棺而出缓苛,到底是詐尸還是另有隱情,我是刑警寧澤邓深,帶...
    沈念sama閱讀 35,437評(píng)論 5 344
  • 正文 年R本政府宣布未桥,位于F島的核電站,受9級(jí)特大地震影響芥备,放射性物質(zhì)發(fā)生泄漏冬耿。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,037評(píng)論 3 326
  • 文/蒙蒙 一萌壳、第九天 我趴在偏房一處隱蔽的房頂上張望亦镶。 院中可真熱鬧日月,春花似錦、人聲如沸缤骨。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,677評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)绊起。三九已至精拟,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間虱歪,已是汗流浹背蜂绎。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,833評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留笋鄙,地道東北人师枣。 一個(gè)月前我還...
    沈念sama閱讀 47,760評(píng)論 2 369
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像萧落,于是被迫代替她去往敵國(guó)和親践美。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,647評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 目錄### 一铐尚、函數(shù)的定義二拨脉、自定義函數(shù)三、函數(shù)的工作原理和結(jié)構(gòu)化編程四宣增、PHP變量的范圍五玫膀、聲明及應(yīng)用各種形式的...
    akon2016閱讀 780評(píng)論 1 1
  • 前言 人生苦多,快來(lái) Kotlin 爹脾,快速學(xué)習(xí)Kotlin帖旨! 什么是Kotlin? Kotlin 是種靜態(tài)類(lèi)型編程...
    任半生囂狂閱讀 26,201評(píng)論 9 118
  • 三十年前灵妨,人們驚呼流行音樂(lè)會(huì)毀掉下一代解阅; 二十年前,人們驚呼電視節(jié)目會(huì)毀掉下一代泌霍; 十年前货抄,人們驚呼電腦及因特網(wǎng)會(huì)...
    氦核閱讀 179評(píng)論 0 0
  • 谷子 別人的幸福 就像超市里貨架上的標(biāo)簽 明碼標(biāo)價(jià) 想讓每一個(gè)人都知道 我的幸福 卻...
    賀紅娜閱讀 366評(píng)論 0 0