Maison >développement back-end >tutoriel php >Méthodes d'appel de tableau PHP et d'exécution de fonctions

Méthodes d'appel de tableau PHP et d'exécution de fonctions

墨辰丷
墨辰丷original
2018-06-11 17:42:462918parcourir

Cet article présente principalement la méthode d'appel récursif des valeurs de tableau et de son utilisation pour exécuter des fonctions spécifiées. Il implique les compétences d'appel de tableau PHP et d'exécution de fonctions. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

Les exemples de cet article décrivent comment PHP appelle de manière récursive les valeurs du tableau et les utilise pour exécuter les fonctions spécifiées. L'analyse spécifique est la suivante :

Ce qui suit est le code wordpress original Pour être paresseux, modifiez-le simplement pour l'appliquer à d'autres fonctions

/**
* 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;
}

Le code est le suivant :

<?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) 
?>

Résumé  : Ce qui précède représente l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'étude de chacun.

Recommandations associées :

Méthode php pour le parcours récursif et le renommage des fichiers

modèle php et téléchargement js plug-in combiné à la méthode permettant d'obtenir un téléchargement sans actualisation

numéro php et code de vérification de l'opération du numéro

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn