搜尋
首頁後端開發php教程PHP函數聲明和使用
PHP函數聲明和使用May 28, 2017 am 09:42 AM
函數


1.  函數名稱是識別碼之一,只能有字母數字底線,開頭不能是數字;

     函數名的命名,必須符合「小駝峰法則」FUNC(),func(),Func();

#     函數名稱不區分大小寫;

     函數名稱不能與已有函數同名,不能與內建函數名稱同名;

2.  # function_exists("func");用於偵測函數是否已經宣告;

      注意傳入的函數名,必須是字串#格式,傳回結果為true/false;

      echo」列印時,true為1,false不顯示;

       變數的作用域]

1.局部變數:宣告在函數內部的變量,稱為局部變量,只在函數內部使用,函數外如需使用,需在函數中使用return關鍵字回傳;

2.全域變數:宣告在函數外部的變數,稱為全域變數;

  3.(較為常用)函數中使用變數預設使用局部變數,若需在函數中使用全域變量,需要使用global關鍵字將全域變數引入使用;

#   函數中的變數名稱 ,如果與全域變數名稱重複,在global之上,為函數的局部變量,global之下為函數的全域變數;

4.$GLOBALS['']全域數組;

    $GLOBALS['a3'] 數組,是PHP為我們內建的全域數組,可以直接為數組添加值,無論在函數內外聲明,均可在任何地方直接使用;eg:$GLOBALS['a3'] =10;

#

  5.函數中使用全域變量,還有一種方式:透過給參數傳參,可以在函數內部使用全域變量,但是傳遞以後的參數是局部變量,內部改變,外部不會改變,除非傳遞的參數是位址.function func($a1,&$a2){}func($a1,$a2);

  (原因)  $a1是局部變量,內部改變,外部不會改變,$a2也是內部變數位址,內部改變,外部也改變;

          若函數的形參,出現了取位址符號,則呼叫函數時,實參必須是變量,而不能是字面量 ;

#           eg:func($a1,$a2)對的 func($a1,為2)錯誤的

#                     且【##靜態#

想念變數】

  靜態變數:使用

static關鍵字

聲明,static $num=10;

  靜態變量的特性:

     靜態變數在函數第一次載入的時候進行宣告;

     函數使用完不會立即釋放靜態變量,靜態變數在整個腳本執行過程中只會宣告一次;     同一函數多次調用,共享同一個靜態變數。

                            ##在PHP中實參的個數只能比形參多,不能比形參少,否則會報錯

# 1.常規參數傳遞:

##   function fun( $a){

    $a+=10;

    return $a;#

   }

  echo fun(10);

2.引用類型的參數:

   $a=10;

#   function func(&$a){

#   $ a+=10;

   }func($b);

   引用參數傳遞,函數內部修改變量,函數外同步變化;

   形參為引用參數,實參只能是變量,不能是字面量。

3.預設參數:

   function func($a,$b=10){

#   return $a+$b;

   }

   echo func(30);   //$b的預設參數是10

   如果參數中既有預設參數,又有非預設參數,那麼,預設參數清單必須在非預設參數清單的後面,也就是確保非預設參數的賦值順序.

   func_get_args();   //取所有參數清單(陣列)

    func_num_args ();   //取所有參數的總個數,相當於count(func_num_args());

    func_get_arg(0);   //根據下表,取每個參數

                         地#  這個變量,就是我們所說的變數函數,可以加()呼叫函數內容;

#

              function func(){ }---->fun="func",----->func( );

                             # ;

      function($func){func();}-->function f(){}--->func("f");

   2使用call

_user_func_

array和call_user_func自訂回呼函數;

     兩個函數的第一個參數,都是回呼函數,表示執行目前回呼;     不同點在於:call_user_func_array()第二個參數為數組,並將數組的每個值賦給回呼函數的參數列表,相當於js

中的apply(); 而,call_user_func,是將回呼函數的參數列表,直接展開寫入第2-多個參數中,相當於js中的call();

   

eg:call_user_func_array("func",array(1,2,3));--->func(1,2,3 );

    call_user_func("func" 1,2,3);---->func(1,2,3);

                                ## 

 時存在多種調用方式,$fun()/func()所以為了讓函數的呼叫更為統一,才產生了匿名函數。

    宣告匿名函數函數體後面的;必不可少!!!    匿名函數本身也是變量,用var_dump檢測為object類別

型;

=
範例:計算一個數的階層:


function jiec($num){    static $jie=1;    //函数执行完不会立即释放
    if($num>0){
        $jie*=$num;   //3
        jiec(--$num);
    }    return $jie;
}
 echo jiec(10);

 ##         # [遞迴函數

]


指的是在函数内部,调用函数自身的操作;当外层函数体中,遇到自身函数调用,继续进入内层函数执行,而自身函数的后半部分暂不执行,知道最内层函数执行完以后,在逐步向外执行;



function func($num){
     echo $num."<br>";    if($num>0){
        func($num-1);   //func(--$num);   试一试又不一样的结果哟!   //func($num--);    }
    echo $num."<br>";
 }func(10);

                                [include/require]
   1.两者的作用就是用于引入外部的PHP文件到当前文件中:include 'a.php';include ('a.php');
   2.两者的区别:(对于错误的处理不同)当引入文件错误时,include会产生警告,并不影响后续代码的执行,而require会产生错误,后续代码不再执行;
   3.一般当用于在文件最上方导入某些文件时,使用require导入,如果失败,则不执行文件;
     如果是在某些分支条件中,导入执行某些操作,一旦报错不影响执行结果。
   4.include_oncerequire_once表示:文件只能导入一次,如果多次调用函数,则后面的文件会判断文件是否导入,再决定是否导入新文件。
     (检测文件是否导入时只关心文件是否已经导入,并不关心使用何种方式导入的。)
   5.include/require可以导入各种类型的文件,相当于在当前文件copy了一份,但是copy过程中,PHP引擎会进行适当的编译,确保不会出错。
   6.include和require是函数也是指令!PHP对于很多常用函数,会提供执行的写法,eg:函数写法echo("111");指令写法echo "111";
  

 

以上是PHP函數聲明和使用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
提高 Python 代码可读性的五个基本技巧提高 Python 代码可读性的五个基本技巧Apr 12, 2023 pm 08:58 PM

Python 中有许多方法可以帮助我们理解代码的内部工作原理,良好的编程习惯,可以使我们的工作事半功倍!例如,我们最终可能会得到看起来很像下图中的代码。虽然不是最糟糕的,但是,我们需要扩展一些事情,例如:load_las_file 函数中的 f 和 d 代表什么?为什么我们要在 clay 函数中检查结果?这些函数需要什么类型?Floats? DataFrames?在本文中,我们将着重讨论如何通过文档、提示输入和正确的变量名称来提高应用程序/脚本的可读性的五个基本技巧。1. Comments我们可

CRPS:贝叶斯机器学习模型的评分函数CRPS:贝叶斯机器学习模型的评分函数Apr 12, 2023 am 11:07 AM

连续分级概率评分(Continuous Ranked Probability Score, CRPS)或“连续概率排位分数”是一个函数或统计量,可以将分布预测与真实值进行比较。机器学习工作流程的一个重要部分是模型评估。这个过程本身可以被认为是常识:将数据分成训练集和测试集,在训练集上训练模型,并使用评分函数评估其在测试集上的性能。评分函数(或度量)是将真实值及其预测映射到一个单一且可比较的值 [1]。例如,对于连续预测可以使用 RMSE、MAE、MAPE 或 R 平方等评分函数。如果预测不是逐点

详解JavaScript函数如何实现可变参数?(总结分享)详解JavaScript函数如何实现可变参数?(总结分享)Aug 04, 2022 pm 02:35 PM

js是弱类型语言,不能像C#那样使用param关键字来声明形参是一个可变参数。那么js中,如何实现这种可变参数呢?下面本篇文章就来聊聊JavaScript函数可变参数的实现方法,希望对大家有所帮助!

盘点Python内置函数sorted()高级用法实战盘点Python内置函数sorted()高级用法实战May 13, 2023 am 10:34 AM

一、前言前几天在Python钻石交流群有个叫【emerson】的粉丝问了一个Python排序的问题,这里拿出来给大家分享下,一起学习下。其实这里【瑜亮老师】、【布达佩斯的永恒】等人讲了很多,只不过对于基础不太好的小伙伴们来说,还是有点难的。不过在实际应用中内置函数sorted()用的还是蛮多的,这里也单独拿出来讲一下,希望下次再有小伙伴遇到的时候,可以不慌。二、基础用法内置函数sorted()可以用来做排序,基础的用法很简单,看个例子,如下所示。lst=[3,28,18,29,2,5,88

学Python,还不知道main函数吗学Python,还不知道main函数吗Apr 12, 2023 pm 02:58 PM

Python 中的 main 函数充当程序的执行点,在 Python 编程中定义 main 函数是启动程序执行的必要条件,不过它仅在程序直接运行时才执行,而在作为模块导入时不会执行。要了解有关 Python main 函数的更多信息,我们将从如下几点逐步学习:什么是 Python 函数Python 中 main 函数的功能是什么一个基本的 Python main() 是怎样的Python 执行模式Let’s get started什么是 Python 函数相信很多小伙伴对函数都不陌生了,函数是可

Python面向对象里常见的内置成员介绍Python面向对象里常见的内置成员介绍Apr 12, 2023 am 09:10 AM

好嘞,今天我们继续剖析下Python里的类。[[441842]]先前我们定义类的时候,使用到了构造函数,在Python里的构造函数书写比较特殊,他是一个特殊的函数__init__,其实在类里,除了构造函数还有很多其他格式为__XXX__的函数,另外也有一些__xx__的属性。下面我们一一说下:构造函数Python里所有类的构造函数都是__init__,其中根据我们的需求,构造函数又分为有参构造函数和无惨构造函数。如果当前没有定义构造函数,那么系统会自动生成一个无参空的构造函数。例如:在有继承关系

go语言的形参占用内存吗go语言的形参占用内存吗Dec 28, 2022 pm 05:19 PM

形参变量在未出现函数调用时并不占用内存,只在调用时才占用,调用结束后将释放内存。形参全称“形式参数”,是函数定义时使用的参数;但函数定义时参数是没有任实际何数据的,因而在函数被调用前没有为形参分配内存,其作用是说明自变量的类型和形态以及在过程中的作用。

Golang函数的类型断言用法介绍Golang函数的类型断言用法介绍May 16, 2023 am 08:02 AM

Golang的函数类型断言是一个非常重要的特性,它可以让我们在函数中精细地控制变量的类型,从而更加方便地进行数据处理和转换。本文将介绍Golang函数的类型断言用法,希望能够对大家的学习有所帮助。一、什么是Golang函数的类型断言?Golang函数的类型断言可以理解为函数参数中所声明变量的类型具有多态性,这使得一个函数在不同的参数传递下可以灵活

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),