Home >Backend Development >PHP Tutorial >PHP array calling and function execution methods

PHP array calling and function execution methods

墨辰丷
墨辰丷Original
2018-06-11 17:42:462864browse

This article mainly introduces the method of PHP recursively calling array values ​​and using it to execute specified functions. It involves the skills of PHP array calling and function execution. It has certain reference value. Friends who need it can refer to it

The example in this article describes how PHP recursively calls an array value and uses it to execute a specified function. The specific analysis is as follows:

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

/**
* 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:

<?php 
function function_deep($function,$value) {
  try {
    if(!function_exists($function)){
      $error = &#39;"&#39;.$function.&#39;" is undefined&#39;;
      throw new Exception($error);
    }
  } catch (Exception $e) {
    echo &#39;Caught exception: &#39;, $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&#39;m bean",
    "I&#39;m bean",
    array("I&#39;m bean","I&#39;m bean")
    );
var_dump(function_deep("addslashes",$arr));
// 输出结果
// array (size=3)
//  0 => string &#39;I\&#39;m bean&#39; (length=9)
//  1 => string &#39;I\&#39;m bean&#39; (length=9)
//  2 => 
//   array (size=2)
//    0 => string &#39;I\&#39;m bean&#39; (length=9)
//    1 => string &#39;I\&#39;m bean&#39; (length=9) 
?>

Summary : The above is the entire content of this article, I hope it will be helpful to everyone's study.

Related recommendations:

php method for recursive traversal and renaming of files

php template and js upload plug-in combined with the method to achieve refresh-free upload

php number and number operation verification code

The above is the detailed content of PHP array calling and function execution methods. For more information, please follow other related articles on the PHP Chinese website!

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