How to recursively call an array value in PHP and use it to execute a specified function_PHP Tutorial

WBOY
Release: 2016-07-13 09:58:30
Original
814 people have browsed it

PHP recursively calls the array value and uses it to execute the specified function

The following is the original wordpress code. To be lazy, simply modify it to apply to other functions

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

/**

* Navigates through an array and removes slashes from the values.

*

* If an array is passed, the array_map() function causes a callback to pass the

* value back to the function. The slashes from this value will removed.

*

* @since 2.0.0

*

* @param mixed $value The value to be stripped.

* @return mixed Stripped value.

*/

function stripslashes_deep($value) {

if ( is_array($value) ) {

$value = array_map('stripslashes_deep', $value);

} elseif ( is_object($value) ) {

$vars = get_object_vars( $value );

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

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

}

} elseif ( is_string( $value ) ) {

$value = stripslashes($value);

}

return $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
/** * Navigates through an array and removes slashes from the values. * * If an array is passed, the array_map() function causes a callback to pass the * value back to the function. The slashes from this value will removed. * * @since 2.0.0 * * @param mixed $value The value to be stripped. * @return mixed Stripped value. */ function stripslashes_deep($value) { if ( is_array($value) ) { $value = array_map('stripslashes_deep', $value); } elseif ( is_object($value) ) { $vars = get_object_vars( $value ); foreach ($vars as $key=>$data) { $value->{$key} = stripslashes_deep( $data ); } } elseif ( is_string( $value ) ) { $value = stripslashes($value); } return $value; }

The code is as follows:

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 function_deep($function,$value) {

try {

if(!function_exists($function)){

$error = '"'.$function.'" is undefined';

throw new Exception($error);

}

} catch (Exception $e) {

echo 'Caught exception: ', $e->getMessage(), "n";

die();

}

if ( is_array($value) ) {

$fun = Array();

for($i=1;$i<=count($value);$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);

}

return $value;

}

$arr = array(

"I'm bean",

"I'm bean",

array("I'm bean","I'm bean")

);

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

// 输出结果

// array (size=3)

// 0 => string 'I'm bean' (length=9)

// 1 => string 'I'm bean' (length=9)

// 2 =>

// array (size=2)

// 0 => string 'I'm bean' (length=9)

// 1 => string 'I'm bean' (length=9)

?>

1 2 3

4

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 function_deep($function,$value) {<🎜> <🎜>try {<🎜> <🎜>if(!function_exists($function)){<🎜> <🎜>$error = '"'.$function.'" is undefined';<🎜> <🎜>throw new Exception($error);<🎜> <🎜>}<🎜> <🎜>} catch (Exception $e) {<🎜> <🎜>echo 'Caught exception: ', $e->getMessage(), "n"; die(); } if ( is_array($value) ) { $fun = Array(); for($i=1;$i<=count($value);$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); } return $value; } $arr = array( "I'm bean", "I'm bean", array("I'm bean","I'm bean") ); var_dump(function_deep("addslashes",$arr)); //Output results //array (size=3) // 0 => string 'I'm bean' (length=9) // 1 => string 'I'm bean' (length=9) // 2 => //array (size=2) // 0 => string 'I'm bean' (length=9) // 1 => string 'I'm bean' (length=9) ?>
http://www.bkjia.com/PHPjc/977617.htmlwww.bkjia.comtruehttp: //www.bkjia.com/PHPjc/977617.htmlTechArticleHow PHP recursively calls array values ​​and uses them to execute specified functions. The following is the original wordpress code. To be lazy, I simply modified it. To apply other functions 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1...
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!