亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

PHPカスタム関數(shù)の高度な使用法

コールバック関數(shù)

コールバック関數(shù)は、匿名関數(shù)や変數(shù)関數(shù)と併用して、より美しく複雑な関數(shù)構(gòu)造を?qū)g現(xiàn)できます。

コールバック関數(shù)は、関數(shù)を処理するときにこの関數(shù)をよりカスタマイズしやすくするためのもので、この関數(shù)の呼び出しが許可されている場(chǎng)合、処理を連攜して支援するために関數(shù)を渡すこともできます。

<?php
function woziji($one, $two, $func)
{
//規(guī)定:檢查$func是否是函數(shù),如果不是函數(shù)停止執(zhí)行本段代碼,返回false
   if(!is_callable($func))
   {
    return false;
   }
   //把$one、$two相加,再把$one和$two傳入$func這個(gè)函數(shù)中處理一次
   //$func是一個(gè)變量函數(shù),參見(jiàn)變量函數(shù)
   echo $one + $two + $func($one,$two);
}
  //我們定義幾個(gè)函數(shù)試試
function plusx2($foo ,$bar)
{
$result = ($foo+$bar)*2;
return $result;
}
function jian($x, $y)
{
$result = $x - $y;
return $result;
}
//調(diào)用一下函數(shù),woziji,向里面?zhèn)魅雲(yún)?shù)試試
echo woziji(20,10,'plusx2');   // 輸出結(jié)果為 90
//將plusx2改成jian試試結(jié)果
echo woziji(20,10,'jian');   //輸出結(jié)果為 40
?>

処理プロセスは次のとおりです:

仮引數(shù)$oneに20、$twoに10を代入し、$funcに2つの変數(shù)関數(shù)plusx2またはjianを代入します

woziji関數(shù)では、 plusx2 または jian が関數(shù)であるかどうかを判定し、関數(shù)でない場(chǎng)合は false を返し、関數(shù)であることを示します。したがって、$one = 20、$two =10 が加算されます。加算後、$one と $two は $func($one,$two) に取り込まれます。

それを取り込んだ後の$funcは変數(shù)であり、plusx2またはjianにすることができます。 plusx2の場(chǎng)合は、plusx2関數(shù)の$one = 20, $two = 10の2つの結(jié)果を$fooと$barに與えて

$foo + $barを2倍して返します。関數(shù)本體の操作: $one + $two + $func($one,$two);

このようにして、操作の主な結(jié)果が得られますこれでコールバック関數(shù)を理解できます。呼び出し番號(hào)でそれを渡し、それを関數(shù)名に渡し、関數(shù)名に () 括弧を追加します。変數(shù)関數(shù)として認(rèn)識(shí)してまとめて実行します。

変數(shù)関數(shù)

変數(shù)関數(shù)、変數(shù)関數(shù)とも呼びます変數(shù)関數(shù)の使い方は次のとおりです:

<?php
function demo()
{
echo '天王蓋地虎';
}
function test()
{
echo '小雞燉蘑菇';
}
$fu = 'demo';
//把$fu變?yōu)榱薲emo,把demo后加上了一個(gè)括號(hào),就執(zhí)行函數(shù)了 
$fu();   // 輸出為 天王蓋地虎
//把$fu的值改為test字符串再試試?
?>


匿名関數(shù)

私たちにとっての機(jī)能単に一時(shí)的な処理をするだけなので、関數(shù)を再利用する必要はありません。名前を付けるのは非常に面倒なので、匿名関數(shù)を使用したい場(chǎng)合は、それを処理する必要があります。それは変數(shù)に返されます。 匿名関數(shù)の最初の使用法は、代入値を変數(shù)に直接代入することであり、変數(shù)を呼び出すことは関數(shù)を呼び出すことです。

変數(shù)関數(shù)匿名関數(shù)

<?php
$greet = function($name)
{
echo $name.',你好';
};
$greet('明天');  //輸出 明天,你好
$greet('PHP');   // 輸出 PHP,你好
?>

コールバック匿名関數(shù)

<?php                
function woziji($one,$two,$func)
{                
//規(guī)定:檢查$func是否是函數(shù),如果不是函數(shù)停止執(zhí)行本段代碼,返回false                
    if(!is_callable($func))
    {                
    return false;                
    }                
    //把$one、$two相加,再把$one和$two傳入$func這個(gè)函數(shù)中處理一次                
    //$func是一個(gè)變量函數(shù),參見(jiàn)變量函數(shù)                
    echo $one + $two + $func($one,$two);  //結(jié)果為: 150                
}                
woziji(20,30,function($foo,$bar)
{                
$result = ($foo+$bar)*2;                
return $result;                
}
);                
?>

內(nèi)部関數(shù):

內(nèi)部関數(shù)とは、関數(shù)の中で関數(shù)を宣言することを指します。 注: 內(nèi)部関數(shù)名に既存の関數(shù)名を使用することはできません

関數(shù) a に內(nèi)部関數(shù)が定義されていると仮定すると、関數(shù) a を 2 回使用することはできません。

以下のコードを見(jiàn)てみましょう。すぐに學(xué)べます:

<?php
function foo()
{
  echo '我是函數(shù)foo喲,調(diào)一下我才會(huì)執(zhí)行定義函數(shù)bar的過(guò)程<br />';
   function bar()
   {
     echo '在foo函數(shù)內(nèi)部有個(gè)函數(shù)叫bar函數(shù)<br />';
   }
 }
 //現(xiàn)在還不能調(diào)用bar()函數(shù),因?yàn)樗€不存在
 bar();
 foo();
//現(xiàn)在可以調(diào)用bar()函數(shù)了,因?yàn)閒oo()函數(shù)的執(zhí)行使得bar()函數(shù)變?yōu)橐讯x的函數(shù)
 bar();
//再調(diào)一次foo()看看是不是會(huì)報(bào)錯(cuò)?
 foo();
?>

上記の foo() 関數(shù)內(nèi)で bar 関數(shù)が定義されていることがわかります。これは內(nèi)部関數(shù)番號(hào)です。

慎重な観察と実験の後、次の結(jié)論を?qū)Г訾筏蓼?

1. foo() を 2 回呼び出すとエラーが報(bào)告されます

2. bar 関數(shù)は foo


の中にあるため、foo() 関數(shù)を調(diào)整しないと実行できません。
學(xué)び続ける
||
<?php function demo() { echo '天王蓋地虎'; } function test() { echo '小雞燉蘑菇'; } $fu = 'demo'; //把$fu變?yōu)榱薲emo,把demo后加上了一個(gè)括號(hào),就執(zhí)行函數(shù)了 $fu(); // 輸出為 天王蓋地虎 //把$fu的值改為test字符串再試試? ?>
提出するリセットコード