首页 / PHP / 动态创建php类函数或函数
动态创建php类函数或函数
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了动态创建php类函数或函数,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2334字,纯文字阅读大概需要4分钟。
内容图文
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类函数或函数所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。