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<br>";
$i++;
}
register_tick_function("foo", "count");
declare (ticks = 6) {
for($i=0; $i<20; $i++) {
echo "$i<br>";
}
}
?>

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

更多关于PHP相关内容感兴趣的读者可查看本站专题:《php常用函数与技巧总结》、《php+mysql数据库操作入门教程》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php面向对象程序设计入门教程》、《PHP网络编程技巧总结》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索php
, 函数
, 功能强大
很少使用
微课制作技巧小结、攻辩小结技巧、强大的谷歌搜索技巧、钢结构识图技巧与实例、ug数控编程实例与技巧,以便于您获取更多的相关知识。

时间: 2024-08-17 20:03:38

PHP中功能强大却很少使用的函数实例小结_php技巧的相关文章

PHP开发中常用的三个表单验证函数使用小结_php技巧

ISSET();--适合于检测是否存在这个参数. 定义和作用范围:用于测试一个变量是否具有值(包括0,FALSE,或者一个空字串,但不能是NULL),即:"http://localhost/?fo="也是可以通过检测,因此不适用.但如果是"http://localhost/"参数中并不含fo参数,就可以用isset来检测,此时isset($_GET['fo'])返回false. 不适用于:该函数不适合于验证html表单中的文本的有效方式.要检查用户输入文本是否有效,

PHP中字符安全过滤函数使用小结_php技巧

在WEB开发过程中,我们经常要获取来自于世界各地的用户输入的数据.但是,我们"永远都不能相信那些用户输入的数据".所以在各种的Web开发语言中,都会提供保证用户输入数据安全的函数.在PHP中,有些非常有用并且方便的函数,它们可以帮助你防止出现像SQL注入攻击,XSS攻击等问题. 1. mysql_real_escape_string() 这个函数曾经对于在PHP中防止SQL注入攻击提供了很大的帮助,它对特殊的字符,像单引号和双引号,加上了"反斜杠",确保用户的输入在

php中$_REQUEST、$_POST、$_GET的区别和联系小结_php技巧

1. $_REQUEST php中$_REQUEST可以获取以POST方法和GET方法提交的数据,但是速度比较慢 2. $_GET 用来获取由浏览器通过GET方法提交的数据.GET方法他是通过把参数数据加在提交表单的action属性所指的URL中,值和表单内每个字段一一对应,然后在URL中可以看到,但是有如下缺点: 1. 安全性不好,在URL中可以看得到 2. 传送数据量较小,不能大于2KB. 3. $_POST 用来获取由浏览器通过POST方法提交的数据.POST方法他是通过HTTP POST

PHP中feof()函数实例测试_php技巧

本文实例讲述了PHP中的feof()函数的用法,针对feof()函数进行了一定的测试,很有实用价值.具体分析如下: 本文实例运行环境: OS:Mac OS X 10.8.4 PHP:5.3.15 在PHP的官方手册中,函数feof()下面的讨论不少,对此做了一些相关的测试如下. 测试代码如下: <?php print <<<EOF <!DOCTYPE html> <html> <head> <meta http-equiv="Co

在WordPress的后台中添加顶级菜单和子菜单的函数详解_php技巧

添加设置页面-add_menu_page函数add_menu_page(),这个函数是往后台添加顶级菜单先,也就是和"外观"."插件"等一样的顶级菜单. 函数介绍如下: <?php add_menu_page( $page_title, $menu_title, $capability, $menu_slug, $function, $icon_url, $position ); //page_title页面title标签信息 //$menu_title 菜单

PHP中的数组处理函数实例总结_php技巧

本文实例总结了PHP中的数组处理函数.分享给大家供大家参考,具体如下: <?php //改变数组键的大小写 $arr1=array("a"=>"Lamp","db"=>"database","LANGUAGE"=>"PHP"); print_r(array_change_key_case($arr1,CASE_UPPER)); echo "<br/

php中禁止单个IP与ip段访问的代码小结_php技巧

禁止单个IP <?php //加IP访问限制 if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) { $userip = getenv('HTTP_CLIENT_IP'); } elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown'

Windows XP系统中功能强大的syskey命令

今天系统天地官网小编给大家浅析Windows XP系统中功能强大的syskey命令.也许大家对于syskey命令都很了解吧,其实syskey命令能帮助用户提高系统的安全,感兴趣的用户赶快来看看功能强大的syskey命令的用法. 一.利用syskey命令功能双重密码保护 1.点击"开始--运行",输入"syskey"命令后按回车. 2.在出现的界面就是帐户数据库,下一步点击"更新". 3.选择密码启动,输入一个密码后点击确定.这样做将使WINXP在

PHP中使用协同程序实现合作多任务第1/2页_php技巧

PHP5.5一个比较好的新功能是实现对生成器和协同程序的支持.对于生成器,PHP的文档和各种其他的博客文章(就像这一个或这一个)已经有了非常详细的讲解.协同程序相对受到的关注就少了,所以协同程序虽然有很强大的功能但也很难被知晓,解释起来也比较困难. 这篇文章指导你通过使用协同程序来实施任务调度,通过实例实现对技术的理解.我将在前三节做一个简单的背景介绍.如果你已经有了比较好的基础,可以直接跳到"协同多任务处理"一节. 生成器 生成器最基本的思想也是一个函数,这个函数的返回值是依次输出,