PHP関数の処理関数例を詳しく解説

WBOY
リリース: 2016-06-23 14:35:43
オリジナル
936 人が閲覧しました

1. call_user_func と call_user_func_array:

上記の 2 つの関数は、異なるパラメーター形式でコールバック関数を呼び出します。次の例を参照してください:

<?phpclass AnotherTestClass {    public static function printMe() {        print "This is Test2::printSelf.\n";    }    public function doSomething() {        print "This is Test2::doSomething.\n";    }    public function doSomethingWithArgs($arg1, $arg2) {        print 'This is Test2::doSomethingWithArgs with ($arg1 = '.$arg1.' and $arg2 = '.$arg2.").\n";    }}$testObj = new AnotherTestClass();call_user_func(array("AnotherTestClass", "printMe"));call_user_func(array($testObj, "doSomething"));call_user_func(array($testObj, "doSomethingWithArgs"),"hello","world");call_user_func_array(array($testObj, "doSomethingWithArgs"),array("hello2","world2"));
ログイン後にコピー

実行結果は次のとおりです:

bogon:TestPhp$ php call_user_func_test.php This is Test2::printSelf.This is Test2::doSomething.This is Test2::doSomethingWithArgs with ($arg1 = hello and $arg2 = world).This is Test2::doSomethingWithArgs with ($arg1 = hello2 and $arg2 = world2).
ログイン後にコピー

2. func_get_args、func_num_args、および func_get_args: これら 3 つの関数の共通の特徴は、すべてカスタムに関係するものです関数内でのみ使用でき、可変パラメータを持つカスタム関数に適しています。それらの関数のプロトタイプと簡単な説明は次のとおりです:

int func_num_args (void) 現在の関数のパラメーターの数を取得します。

array func_get_args (void) 現在の関数のすべてのパラメータを配列の形式で返します。
mixed func_get_arg (int $arg_num) は、現在の関数の指定された位置にあるパラメーターを返します。0 は最初のパラメーターを表します。

<?phpfunction myTest() {    $numOfArgs = func_num_args();    $args = func_get_args();    print "The number of args in myTest is ".$numOfArgs."\n";    for ($i = 0; $i < $numOfArgs; $i++) {        print "The {$i}th arg is ".func_get_arg($i)."\n";    }    print "\n-------------------------------------------\n";    foreach ($args as $key => $arg) {        print "$arg\n";    }}myTest('hello','world','123456');
ログイン後にコピー

実行結果は次のとおりです:

Stephens-Air:TestPhp$ php class_exist_test.php The number of args in myTest is 3The 0th arg is helloThe 1th arg is worldThe 2th arg is 123456-------------------------------------------helloworld123456
ログイン後にコピー

3. function_exists と register_shutdown_function:

関数のプロトタイプと簡単な説明は次のとおりです:

bool function_exists (string $function_name)関数かどうかを判断します存在します。

void register_shutdown_function (callable $callback [,mixed $parameter[,mixed $... ]]) は、スクリプトの終了前、または途中で exit が呼び出されたときに、登録された関数を呼び出します。さらに、複数の関数が登録されている場合、それらの関数は登録された順序で順番に実行され、いずれかのコールバック関数で exit() が内部的に呼び出された場合、スクリプトはすぐに終了し、残りのコールバックは実行されません。 。


<?phpfunction shutdown($arg1,$arg2) {    print '$arg1 = '.$arg1.', $arg2 = '.$arg2."\n";}if (function_exists('shutdown')) {    print "shutdown function exists now.\n";}register_shutdown_function('shutdown','Hello','World');print "This test is executed.\n";exit();print "This comments cannot be output.\n";
ログイン後にコピー

実行結果は次のとおりです。

Stephens-Air:TestPhp$ php call_user_func_test.php shutdown function exists now.This test is executed.$arg1 = Hello, $arg2 = World
ログイン後にコピー

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート