php通过字符串调用函数示例

1. call_user_func

代码如下:

function a($b,$c){
  echo $b;
  echo $c;
}
call_user_func('a', "111","222");
call_user_func('a', "333","444");

//显示 111 222 333 444
?>

调用类内部的方法比较奇怪,居然用的是array,不知道开发者是如何考虑的,当然省去了new,也是满有新意的:

代码如下:

class a {
  function b($c){
    echo $c;
  }
}
call_user_func(array("a", "b"),"111");

//显示 111
?>

2. call_user_func_array

call_user_func_array函数和call_user_func很相似,只不过是换了一种方式传递了参数,让参数的结构更清晰:


代码如下:

function a($b, $c){
  echo $b;
  echo $c;
}
call_user_func_array('a', array("111", "222"));

//显示 111 222
?>

call_user_func_array函数也可以调用类内部的方法的
 

代码如下:

Class ClassA{
  function bc($b, $c) {
      $bc = $b + $c;
    echo $bc;
  }
}
call_user_func_array(array('ClassA','bc'), array("111", "222"));

//显示 333
?>

call_user_func函数和call_user_func_array函数都支持引用,这让他们和普通的函数调用更趋于功能一致:

代码如下:

function a(&$b){
  $b++;
}
$c = 0;
call_user_func('a', &$c);
echo $c;//显示 1
call_user_func_array('a', array(&$c));
echo $c;//显示 2

(0)

相关推荐

  • PHP自带函数给数字或字符串自动补齐位数

    先来看个例子:需求为生成4位数,不足前面补0 <?php //生成4位数,不足前面补0 $var=sprintf("%04d", 2); echo $var;//结果为0002 echo date('Y_m_d', time()).'_'.sprintf('d', rand(0,99)); ?> sprintf()函数 有没有感觉很像c语言 1. 语法 sprintf(format,arg1,arg2,arg++) 参数 描述 format 必需.转换格式. arg1 必需

  • PHP中常用的字符串格式化函数总结

    字符串的格式化就是将字符串处理为某种特定的格式.通常用户从表单中提交给服务器的数据都是字符串的形式,为了达到期望的输出效果,就需要按照一定的格式处理这些字符串后再去使用.经常见到的字符串格式化函数如下图所示: 注意:在PHP中提供的字符串函数处理的字符串,大部分都不是在原字符串上修改,而是返回一个格式化后的新字符串. 一.取出空格和字符串填补函数 空格也是一个有效的字符,在字符串中也会占据一个位置.用户在表单输入数据时,经常在无意中会多输入一些无意义的空格.因此PHP脚本在接收到通过表单处理过来

  • php常用字符串处理函数实例分析

    本文实例讲述了php常用字符串处理函数.分享给大家供大家参考.具体分析如下: 这里只提供几个简单常用的函数: chop执行去除空格处理,get_html_translation_table返回转化列表到变量,定义包括HTML编码的字符串htmlentities,htmlspecialchars_decode 定义包含HTML特殊字符的字符串,nl2br quotemeta rtrim等. 定义和用法:chop() 函数从字符串的末端开始删除空白字符或其他预定义字符,该函数的 rtrim() 函数

  • php对包含html标签的字符串进行截取的函数分享

    这个方法的作用是:php截取含有html标签的字符串,如果标签未闭合就闭合标签,防止未闭合的标签破坏原网页布局.截取完之后将多余的内容替换为...或者其他任意字符,支持锚点指定替换到指定位置. /* * ============================== 截取含有 html标签的字符串 ========================= * @param (string) $str 待截取字符串 * @param (int) $lenth 截取长度 * @param (string)

  • php截取字符串函数substr,iconv_substr,mb_substr示例以及优劣分析

    示例代码,用到了函数substr与iconv_substr,mb_substr 复制代码 代码如下: <html><head><meta charset='utf-8'><title>截取中文字符串_我们_www.jb51.net</title></head><body><?php$str='123我们456欢迎大家的光临';echo substr($str,0,4);echo '<br>';echo i

  • php mb_substr()函数截取中文字符串应用示例

    substr()函数用来截取字符串,但是对于中文字符会出现问题,而mb_substr()和mb_strcut这两个函数可以,用法与substr()相似,只是在函数最后要加入多一个参数,以设定字符串的编码,使用这两个函数需要在php.ini中把php_mbstring.dll打开. <?php header("content-type:text/html; charset=utf-8"); $string = "你好我好大家好"; echo strlen($st

  • 利用PHP函数计算中英文字符串长度的方法

    本文实例讲述了利用PHP函数计算中英文字符串长度的方法.分享给大家供大家参考.具体实现方法如下: 一般来说大家知道英文字符占一个字节,而中文字符gbk占两个字符,utf8占三个字符,很多人印象中php计算字符串长度就是strlen()函数,其实不然,它计算的是字节的长度而非字符的长度,那么如何获取一个字符串中字符的长度呢?还有有mb_strlen(). 具体代码如下: 复制代码 代码如下: echo $str = 'PHP点点通'; echo strlen($str); //3*1+3*3=12

  • PHP数字和字符串ID互转函数(类似优酷ID)

    不知道你注意了没有,类似优酷.腾讯视频等其他视频链接似乎类似这样的 复制代码 代码如下: http://v.youku.com/v_show/id_XNjA5MjE5OTM2.html 注意id_xxx那段,是不是看不懂了,但你无可否认这个就是id,这不国外的一位牛人早在09年就写了针对PHP/Python/Javascript/Java/SQL的生成方法,可见我现在是多么的落伍,下面我把代码贴出来,希望分享精神永存. 复制代码 代码如下: <?php /**   * @author   Kev

  • PHP字符串比较函数strcmp()和strcasecmp()使用总结

    比较字符串是任何编程语言的字符串处理功能中重要的特性之一.在PHP中除了可以使用比较运算符号(==.<或>)加以比较外,还提供了一系列的比较函数,使PHP可以进行更复杂的字符串比较.如strcmp().strcasecmp()和strnatcmp()等函数. 1.按字节顺序进行字符串比较 要按字节顺序进行字符串的比较,可以使用strcmp()和strcasecmp()两个函数,其中函数strcasecmp()可以忽略字符串中字母的大小写进行比较.这两个函数的原型如下所示: 复制代码 代码如下:

  • PHP生成自定义长度随机字符串的函数分享

    php随机生成字符串可以自己定义自己所需要的长度,在实际应用开发中,经常遇到. 复制代码 代码如下: //随机生成字符串function random($length) {     srand(date("s"));     $possible_charactors = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";     $string = "";     while(strlen($string)<$l

随机推荐