男女疯狂一边摸一边做羞羞视频|啊好深好硬快点用力别停动态图|亚洲一区无码中文字幕|特级无码毛片免费视频播放▽|久久狠狠躁免费观看|国内精品久久久久久网站

用戶(hù)自定義函數

一個(gè)函數可由以下的語(yǔ)法來(lái)定義:

示例 #1 展示函數用途的偽代碼

<?php
function foo($arg_1$arg_2/* ..., */ $arg_n)
{
    echo 
"Example function.\n";
    return 
$retval;
}
?>

任何有效的 PHP 代碼都有可能出現在函數內部,甚至包括其它函數和 類(lèi) 定義。

函數名和 PHP 中的其它標識符命名規則相同。有效的函數名以字母或下劃線(xiàn)打頭,后面跟字母,數字或下劃線(xiàn)??梢杂谜齽t表達式表示為: ^[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*$。

小技巧

請參見(jiàn)用戶(hù)空間命名指南。

函數無(wú)需在調用之前被定義,除非 是下面兩個(gè)例子中函數是有條件被定義時(shí)。

當一個(gè)函數是有條件被定義時(shí),必須在調用函數 之前 定義。

示例 #2 有條件的函數

<?php

$makefoo 
true;

/* 不能在此處調用foo()函數,
   因為它還不存在,但可以調用bar()函數。*/

bar();

if (
$makefoo) {
  function 
foo()
  {
    echo 
"I don't exist until program execution reaches me.\n";
  }
}

/* 現在可以安全調用函數 foo()
   因為 $makefoo 值為真 */

if ($makefoofoo();

function 
bar()
{
  echo 
"I exist immediately upon program start.\n";
}

?>

示例 #3 函數中的函數

<?php
function foo()
{
  function 
bar()
  {
    echo 
"I don't exist until foo() is called.\n";
  }
}

/* 現在還不能調用 bar() 函數,因為它還不存在 */

foo();

/* 現在可以調用 bar() 函數了,因為 foo() 函數
   的執行使得 bar() 函數變?yōu)橐讯x的函數 */

bar();

?>

PHP 中的所有函數和類(lèi)都具有全局作用域,可以定義在一個(gè)函數之內而在之外調用,反之亦然。

PHP 不支持函數重載,也不可能取消定義或者重定義已聲明的函數。

注意: AZ 的 ASCII 函數名是大小寫(xiě)無(wú)關(guān)的,不過(guò)在調用函數的時(shí)候,使用其在定義時(shí)相同的形式是個(gè)好習慣。

PHP 的函數支持 可變數量的參數默認參數。參見(jiàn) func_num_args(),func_get_arg()func_get_args()。

在 PHP 中可以調用遞歸函數。

示例 #4 遞歸函數

<?php
function recursion($a)
{
    if (
$a 20) {
        echo 
"$a\n";
        
recursion($a 1);
    }
}
?>

注意: 但是要避免遞歸函數/方法調用超過(guò) 100-200 層,因為可能會(huì )使堆棧崩潰從而使當前腳本終止。 無(wú)限遞歸可視為編程錯誤。

男女疯狂一边摸一边做羞羞视频|啊好深好硬快点用力别停动态图|亚洲一区无码中文字幕|特级无码毛片免费视频播放▽|久久狠狠躁免费观看|国内精品久久久久久网站