`
天梯梦
  • 浏览: 13732919 次
  • 性别: Icon_minigender_2
  • 来自: 洛杉矶
社区版块
存档分类
最新评论

动态创建php 类函数或函数

阅读更多

1. 基础

 

变量函数:

 

 

<?php
$func = 'test';

function test(){
	echo 'yes !';
}

$func();
?>

 

随机函数:

 

 

<?php
$newfunc = create_function('$a,$b', 'return $a.$b;');
echo "New anonymous function: $newfunc<br>";
echo $newfunc('just', 'coding');
?>
 

 

create_function — Create an anonymous (lambda-style) function

 

创建一个匿名函数。这个函数主要作用在unsort和array_walk的回调函数

$a,$b为参数,'return $a,$b' 为函数的代码

 

 

回调函数 :

 

 

<?php   
//5.3 以前   
$array = array( 'asbc', 'ddd', 'tttt', 'qqq');   
array_walk($array,create_function('&$item','$item=strtoupper($item);') ); //function(&$itm){$itm = strtoupper($itm);}   
print_r($array);

//5.3 以后   
$array = array( 'asbc', 'ddd', 'tttt', 'qqq');   
array_walk($array,function(&$itm){$itm = strtoupper($itm);});    
print_r($array);
?>
 

array_walk(array,function,userdata...)

 

 

array_walk() 函数对数组中的每个元素应用回调函数。如果成功则返回 TRUE,否则返回 FALSE。

 

典型情况下 function 接受两个参数。array 参数的值作为第一个,键名作为第二个。如果提供了可选参数 userdata ,将被作为第三个参数传递给回调函数。

 

 

2. 实例动态创建类函数

 

 

 

<?php
/* create class */
class Record {
  
	/* record information will be held in here */
	private $info;
  
	/* constructor */
	function Record($record_array) {
		$record_array['body'] = 'this is a new attribution';
		$this->info = $record_array;
	}
  
	/* dynamic function server */
	function __call($method,$arguments) {
		$meth = $this->from_case(substr($method,3,strlen($method)-3));
		return array_key_exists($meth,$this->info) ? $this->info[$meth] : false;
	}
  
	function from_case($str) {
		$str[0] = strtolower($str[0]);
		$func = create_function('$c', 'return "_" . strtolower($c[1]);'); // function ($c) { return "_" . strtolower($c[1]); }
		return preg_replace_callback('/([A-Z])/', $func, $str);
	}  
}


/* usage */
$Record = new Record(
	array(
		'id' => 12,
		'title' => 'Greatest Hits',
		'description' => 'The greatest hits from the best band in the world!'
	)
);

/* proof it works! */
echo 'The ID is:  '.$Record->getId().'<br>'; // returns 12  
echo 'The Title is:  '.$Record->getTitle().'<br>'; // returns "Greatest Hits"
echo 'The Description is:  '.$Record->getDescription().'<br>'; //returns "The greatest hits from the best band in the world!"
echo 'The Body is:  '.$Record->getBody(); //returns "The greatest hits from the best band in the world!"
?>

 

 

重点在于: __call 和 create_function

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    php运行时动态创建函数的方法

    在PHP编程语言中,动态创建函数是一项非常有用的特性,它允许开发者在程序运行时根据需要创建新的函数。这种灵活性在处理不确定的业务逻辑或者需要根据不同条件执行不同操作时特别有用。本文将深入探讨PHP如何在运行...

    PHP经典实例--函数

    "PHP经典实例--函数"这个主题深入探讨了如何在实际项目中有效地利用PHP函数,涵盖了一系列关键知识点,如处理参数、变量引用传递、动态创建函数以及理解作用域。 1. **处理参数**:在PHP中,函数可以接受零个或多个...

    PHP函数参考手册

    * PHP Array 函数:PHP Array 函数用于操作数组,例如创建、合并、过滤、排序等操作。 * PHP Calendar 函数:PHP Calendar 函数用于处理日期和时间。 * PHP Directory 函数:PHP Directory 函数用于处理目录和文件...

    php函数手册.rar

    《PHP函数手册》是PHP开发者不可或缺的参考资料,它详尽地涵盖了PHP语言中的各种内置函数、类方法以及常量,帮助开发者在编程过程中快速解决遇到的问题。PHP是一种广泛使用的开源脚本语言,尤其适用于Web开发,能...

    php中文函数大全手册 CHM

    1. **函数基础**:手册首先会讲解函数的基本概念,包括自定义函数的创建、参数传递(按值或按引用)、函数返回值以及变量作用域等。理解这些基础知识能帮助开发者构建出高效且可维护的代码。 2. **数据类型与操作**...

    php 魔术函数和常量一览表

    5. **\_\_set()**:与\_\_get()相对应,当试图设置一个未定义或私有的属性值时,此函数将被调用,允许动态管理属性。 6. **\_\_toString()**:当对象被当作字符串处理(例如在echo或print语句中)时自动调用。此...

    php函数手册.pdf

    - 应用场景:在需要实时更新页面内容或避免数据积累时使用,如动态生成的网页内容。 2. **Print函数**: - 描述:`print()`函数用于输出一个或多个字符串。 - 参数:接受零个或多个字符串作为参数。 - 返回值:...

    PHP 图形处理函数库

    【PHP图形处理函数库】是PHP编程中用于创建和操作图像的重要工具,这些函数使得开发者能够在服务器端生成...通过学习和熟练掌握这些函数,开发者可以轻松地在PHP应用程序中生成动态图表、验证码或任何需要的图像内容。

    php使用变量动态创建类的对象用法示例

    在PHP编程中,动态创建类的对象是一项非常实用的技巧,特别是在处理未知类名或需要根据条件实例化不同类的情况下。标题和描述所提及的内容主要集中在如何利用变量来动态地实例化对象,这属于PHP面向对象编程的一部分...

    php函数手册 CHM格式

    《PHP函数手册 CHM格式》是一份非常重要的资源,它为PHP开发者提供了详尽的函数参考。CHM(Microsoft Compiled HTML Help)格式是一种常见的电子文档格式,它将HTML页面编译成一个单一的文件,方便用户离线查阅。这...

    PHP函数参考

    **PHP函数参考** PHP(Hypertext Preprocessor)是一种广泛使用的开源脚本语言,尤其适合于Web开发。它能够嵌入到HTML中,用于增加动态交互性。PHP提供了丰富的内置函数,使得开发者能够轻松地处理各种任务,如数据...

    PHP实现html标签补全函数

    PHP作为一种服务器端脚本语言,常用于处理动态网页内容,因此编写一个PHP函数来检查并补全缺失的HTML标签显得尤为重要。"PHP实现html标签补全函数"这一主题,就是针对这种问题提供解决方案。 首先,我们需要理解...

    php函数大全包含了常用的php函数

    本篇文章将详细探讨标题...当然,PHP函数库非常庞大,除了上述提及的,还有字符串处理函数、文件系统函数、网络函数等,都是构建动态网站或Web应用不可或缺的部分。深入学习和实践这些函数,将有助于提升PHP编程技能。

    PHP 使用技巧集 PHP操作mysql的函数

    如何判断PHP中的变量值是否为空或变量是否已初使化 如何使用PHP中的日期和时间函数 如何使用PHP中的正则表达式 如何使用PHP中的字符串函数 如何用PHP实现文件上载(实例2) 如何用PHP实现网页动态跳转 如何用 PHP ...

    php函数php学习

    在处理动态内容或实时更新时,`flush()`函数能够确保用户可以及时看到页面的更新。 `print`函数是一个简单的输出函数,它接受一个或多个字符串参数,并将它们直接输出到浏览器。如果输出成功,`print`会返回`true`...

    PHP 函数手册 Api 中文版

    **PHP函数手册API中文版**是为中文使用者提供的PHP编程参考文档,包含了PHP语言中所有内置函数、类、接口和常量的详细说明。这个手册不仅提供了全面的函数描述,还具备搜索功能,使得开发者在编写代码时能够快速查找...

    cpp-PHP外部函数接口

    用户可以通过FFI在PHP脚本中直接访问和调用本地(系统)函数,创建和操作C语言定义的数据结构,以及访问本地变量,从而增强了PHP的性能和功能,尤其是在处理低级系统操作或与已有的C库集成时。 **FFI基础知识** 1....

    php图像操作函数

    PHP中的图像操作函数是开发过程中不可或缺的部分,它们允许开发者创建、修改和处理各种图像格式,如JPEG、PNG、GIF等。以下是一些主要的PHP图像处理函数的详细说明: 1. `gd_info()`: 这个函数返回一个关联数组,...

    简单的PHP分页函数类.zip

    1. **引入类**:将分页函数类的文件(在这个例子中是"简单的PHP分页函数类.php")引入到需要分页功能的PHP文件中。 2. **实例化类**:创建类的实例,并传入必要的参数,如每页显示的数据条数,当前页码等。 3. **...

Global site tag (gtag.js) - Google Analytics