PHP函式處理函式例項詳解

2022-03-05 16:35:33 字數 2669 閱讀 9166

1. call_user_func和call_user_func_array:

以上兩個函式以不同的引數形式呼叫**函式。見如下示例:

<?php

class

anothertestclass

public

function

dosomething()

public

function dosomethingwithargs($arg1, $arg2) }

$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:

這三個函式的共同特徵是都很自定義函式引數相關,而且均只能在函式內使用,比較適用於可變引數的自定義函式。他們的函式原型和簡要說明如下:

int func_num_args (void)

獲取當前函式的引數數量。

array func_get_args (void)

以陣列的形式返回當前函式的所有引數。

mixed func_get_arg (int $arg_num)

返回當前函式指定位置的引數,其中0表示第乙個引數。

<?php

function

mytest() th arg is ".func_get_arg($i)."\n";

}print "\n-------------------------------------------\n";

foreach ($args

as$key => $arg) }

mytest('hello','world','123456');

執行結果如下:

stephens-air:testphp$ php class_exist_test.php 

the number of args

in mytest is 3

the 0th arg is hello

the 1th arg is world

the 2th arg is

123456

-------------------------------------------hello

world

123456

3. function_exists和register_shutdown_function:

函式原型和簡要說明如下:

bool function_exists (string $function_name)

判斷某個函式是否存在。

void register_shutdown_function (callable $callback [, mixed $parameter [, mixed $... ]])

在指令碼結束之前或者是中途呼叫exit時呼叫改註冊的函式。另外,如果註冊多個函式,那麼他們將會按照註冊時的順序被依次執行,如果其中某個**函式內部呼叫了exit(),那麼指令碼將立刻退出,剩餘的**均不會被執行。

<?php

function shutdown($arg1,$arg2

) if (function_exists('shutdown'))

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函式處理函式例項詳解

1.call user func和call user func array 以上兩個函式以不同的引數形式呼叫 函式。見如下示例 class anothertestclass public function dosomething public function dosomethingwithargs...

php 如何禁用eval 函式例項詳解

php eval 函式運算元組 value1 key2 value2 key3 value3 key4 value4 arr eval return data var dump arr array 執行結果 array 4 www.cppcns.com 網上很多說使用disable function...

PHP函式引用返回的例項詳解

引用返回 手冊裡是這麼寫的 引用返回用在當想用函式找到引用應該被繫結在哪乙個變數上面時。不要用返回引用來增加效能,引擎足夠聰明來自己進行優化。僅在有合理的技術原因時才返回引用!要返回引用 當你想將函式的返回引用繫結到某個變數時,php允許你這麼做 function returns reference...