Rumah > pembangunan bahagian belakang > tutorial php > php数组调用与函数执行的方法

php数组调用与函数执行的方法

墨辰丷
Lepaskan: 2023-03-31 16:26:02
asal
2924 orang telah melayarinya

这篇文章主要介绍了PHP递归调用数组值并用其执行指定函数的方法,涉及php数组调用与函数执行的技巧,具有一定参考借鉴价值,需要的朋友可以参考下

本文实例讲述了PHP递归调用数组值并用其执行指定函数的方法。具体分析如下:

以下为wordpress原代码,为了偷懒,简单修改一下以适用其它函数

/**
* 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;
}
Salin selepas log masuk

代码如下:

<?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) 
?>
Salin selepas log masuk

总结:以上就是本篇文的全部内容,希望能对大家的学习有所帮助。

相关推荐:

php针对文件的递归遍历及重命名的方法

php模板与js上传插件结合实现无刷新上传的方法

php数字及数字运算验证码

Atas ialah kandungan terperinci php数组调用与函数执行的方法. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan