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

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

  <?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ū)中,看一下有沒有這個(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è)變量, 不能解決多大的問題, 就需要將一個(gè)過程進(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è)變量, 不能解決多大的問題, 就需要將一個(gè)過程進(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ù)庫

          <?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)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

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

友情鏈接更多精彩內(nèi)容