ホームページ >バックエンド開発 >PHPチュートリアル >PHP で配列値を再帰的に呼び出し、それを使用して指定された関数を実行する方法_PHP チュートリアル

PHP で配列値を再帰的に呼び出し、それを使用して指定された関数を実行する方法_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 09:58:30856ブラウズ

PHP は配列値を再帰的に呼び出し、それを使用して指定された関数を実行します

以下は、元の Wordpress コードです。手間をかけるには、単純に変更して他の関数に適用します

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

/**

* 配列内を移動し、値からスラッシュを削除します。

*

* 配列が渡された場合、array_map() 関数によりコールバックが

* 値を関数に戻します。この値のスラッシュは削除されます。

*

* @2.0.0以降

*

* @parammixed $value 削除される値。

* @return 混合除去された値。

*/

関数tripslashes_deep($value) {

if ( is_array($value) ) {

$value = array_map('ストリップスラッシュ_ディープ', $value);

} elseif ( is_object($value) ) {

$vars = get_object_vars( $value );

foreach ($vars as $key=>$data) {

$value->{$key} =tripslashes_deep( $data );

}

} elseif ( is_string( $value ) ) {

$value = ストリップスラッシュ($value);

}

$value を返す;

}

コードは次のとおりです:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

関数 function_deep($function,$value) {

試してください{

if(!function_exists($function)){

$error = '"'.$function.'" は未定義です';

新しい例外($error)をスローします;

}

} catch (例外 $e) {

echo '例外をキャッチしました: ', $e->getMessage(), "n";

死ぬ();

}

if ( is_array($value) ) {

$fun = 配列();

for($i=1;$i

$fun[] = $function;

}

$value = array_map("function_deep",$fun, $value);

} elseif ( is_object($value) ) {

$vars = get_object_vars( $value );

foreach ($vars as $key=>$data) {

$value->{$key} = function_deep($function,$data );

}

} elseif ( is_string( $value ) ) {

$value = call_user_func($function,$value);

}

$value を返す;

}

$arr = 配列(

「私はビーンです」

「私はビーンです」

array("私はビーン","私はビーン")

);

var_dump(function_deep("addslashes",$arr));

//結果を出力する

// 配列 (サイズ=3)

// 0 => 文字列 'I'm bean' (長さ=9)

// 1 => 文字列 'I'm bean' (長さ=9)

// 2 =>

// 配列 (サイズ=2)

// 0 => 文字列 'I'm bean' (長さ=9)

// 1 => 文字列 'I'm bean' (長さ=9)

?>

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/977617.html技術記事 PHP は配列値を再帰的に呼び出し、それを使用して指定された関数を実行します。 以下は元の Wordpress コードです。これを単純に変更して他の関数に適用します。 ...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。