php强大的函数,PHP中一些功能强大却很少使用的函数

本文主要介绍了PHP中功能强大却很少使用的函数,结合实例形式总结分析了php中非常实用的几个函数,包括函数的调用、注册、调用、判断等操作技巧。需要的朋友可以参考下,希望对大家有所帮助。

具体如下:

call_user_func_array — 让参数以数组的形式调用一个函数

call_user_func — 调用一个存在的函数

create_function — 建立一个函数

func_get_arg — 获取函数中某个参数的值

func_get_args — 获取函数的所有参数并组成数组

func_num_args — 获取一个函数的参数个数

function_exists — 判定一个函数是否存在

get_defined_functions — 获取已有的函数信息

register_shutdown_function — 注册一个页面载入完成后运行的函数

register_tick_function — 注册一个按要求调用的函数

unregister_tick_function — 取消一个按要求调用的函数

get_defined_functions可以获取所有的PHP函数和自定义的函数:<?php

function a(){}

$b = get_defined_functions();

print_r($b);

//也许会显示1000多个已定义了的函数:)

?>

function_exists函数判定一个函数是否存在(可以是PHP函数,也可以是自定义函数)。<?php

if (function_exists('a')) {

echo "yes";

} else {

echo "no";

}

function a(){}

// 显示 yes

?>

call_user_func函数类似于一种特别的调用函数的方法,使用方法如下:<?php

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,也是满有新意的:<?php

class a {

function b($c)

{

echo $c;

}

}

call_user_func(array("a", "b"),"111");

//显示 111

?>

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

function a($b, $c)

{

echo $b;

echo $c;

}

call_user_func_array('a', array("111", "222"));

//显示 111 222

?>

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

function a(&$b)

{

$b++;

}

$c = 0;

call_user_func('a', &$c);

echo $c;//显示 1

call_user_func_array('a', array(&$c));

echo $c;//显示 2

?>

func_num_args函数可以获取函数接受到参数的数量:<?php

function a()

{

echo func_num_args();

}

a(111, 222, 333);

//显示 3

?>

func_get_arg函数可以获取某一个传递过来参数的值,在下面的例子中,在函数中并没有具体说明有哪些参数会被接受,利用func_get_arg还可以获取额外的参数:<?php

function a()

{

echo func_get_arg(1);

}

a (111, 222, 333);

//显示 222

?>

func_get_args函数的作用和func_get_arg非常相似,是把所有的参数当成数组来调用:<?php

function a()

{

$numargs = func_num_args();

$b = func_get_args();

for ($i = 0; $i < $numargs; $i++) {

echo $b[$i];

}

}

a(111, 222, 333);

//显示 111 222 333

?>

create_function函数可以建立一个匿名的函数(函数名被PHP默认为lambda_1,lambda_2),样子比较古怪,但是形式比较奇特,要注意第二个参数内的语句要有“;”分隔:<?php

$newfunc = create_function('$a,$b', 'return $a + $b;');

echo $newfunc;

echo $newfunc(2, 3);

//显示 lambda_1 5

?>

register_shutdown_function函数可以注册一个在页面载入完成之后运行的函数(功能有点像缓存),register_shutdown_function也可以像call_user_func函数一样用作对类内部方法的调用:<?php

function a() {

echo 222 ;

}

echo 111;

register_shutdown_function('a');

//显示 111 222

?><?php

class a

{

function b ($c)

{

echo $c;

}

}

register_shutdown_function (array ('a', 'b'), '111');

//显示 111

?>

register_tick_function函数和unregister_tick_function函数必须要和declare流程控制机制合并使用,那么就先了解一下declare和tick:declare (directive){

statement

}

Tick 是一个在 declare 代码段中解释器每执行 N 条低级语句就会发生的事件。N 的值是在 declare 中的 directive 部分用 ticks=N 来指定的。在每个 tick 中出现的事件是由 register_tick_function() 来指定的。举例如下:

function foo($str) {

static $i = 0;

print "$str: $i
";

$i++;

}

register_tick_function("foo", "count");

declare (ticks = 6) {

for($i=0; $i<20; $i++) {

echo "$i
";

}

}

?>

在这个例子中的declare(ticks = N){statement}流程控制里面,每执行6行(ticks = 6)代码,就需要运行一次foo()函数,通过更改ticks的值,我们可以获得不同的运行结果。

相关推荐:

PHP 函数语法介绍一_PHP教程

PHP 函数执行效率的小比较_PHP教程

php 函数使用方法与函数定义方法_PHP教程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值