php变量函数,回调函数

一,变量可以直接传递函数

<?php
function demo($num , $n )//$n是个函数
{for($i=0;$i<$num;++$i){if($n($i)){echo  $i."<br>";}}
}
function funcall($i)
{return $i%2==0;
}
demo(100,"funcall");

  

二, 使用call_user_func_array 

<?php
function demo($num , $n )
{for($i=0;$i<$num;++$i){if(call_user_func_array($n,array($i))){echo  $i."<br>";}}
}
function funcall($i)
{return $i%2==0;
}
demo(100,"funcall");

三,类中函数作为回调函数

(1)类成员函数

<?php
function demo($num , $n )//$n是个函数
{for($i=0;$i<$num;++$i){if($n($i))//if(call_user_func_array($n,array($i))){echo  $i."<br>";}}
}
function funcall($i)
{return $i%2==0;
}class Filter
{function fun($i){return $i%2==0;}static function sfun($i){return $i%3 ==0;}
}
demo(100,array(new Filter(),"fun"));

  

(2)类静态函数

<?php
function demo($num , $n )//$n是个函数
{for($i=0;$i<$num;++$i){if($n($i))//if(call_user_func_array($n,array($i))){echo  $i."<br>";}}
}
function funcall($i)
{return $i%2==0;
}class Filter
{function fun($i){return $i%2==0;}static function sfun($i){return $i%3 ==0;}
}
demo(100,array("Filter","sfun"));

  

  

 

转载于:https://www.cnblogs.com/July7th/p/5614736.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/490430.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

NLP这两年:15个预训练模型对比分析与剖析

来源 | 知乎前言在之前写过的《NLP的游戏规则从此改写&#xff1f;从word2vec, ELMo到BERT》一文中&#xff0c;介绍了从word2vec到ELMo再到BERT的发展路径。而在BERT出现之后的这大半年的时间里&#xff0c;模型预训练的方法又被Google、Facebook、微软、百度、OpenAI等极少数…

多余的读写端口什么时候会对程序造成影响_程序员需要了解的硬核知识之控制硬件...

应用和硬件的关系我们作为程序员一般很少直接操控硬件&#xff0c;我们一般通过 C、Java 等高级语言编写的程序起到间接控制硬件的作用。所以大家很少直接接触到硬件的指令&#xff0c;硬件的控制是由 Windows 操作系统 全权负责的。你一定猜到我要说什么了&#xff0c;没错&am…

直击2019WAIC丨李德毅:人工智能是脱离意识的工具,需要约束的是人类自己

转自 上观新闻中国工程院院士、中国人工智能学会理事长李德毅在2019世界人工智能大会“科学前沿”主论坛上表示&#xff0c;人工智能就是人类智能的体外延伸&#xff0c;可以脱离意识而存在&#xff0c;应该将其看作一种工具。李德毅认为&#xff0c;意识和智能相互之间有很多典…

matplotlib给坐标轴特定的位置加上文字

比如我想在横坐标0和1这两个位置分别用文字“y1”和“y2”代替&#xff0c;即实现以下这种效果&#xff1a; plt.xlim([-1, 2]) plt.xticks([0, 1], ["y1", "y2"])

K-Means ++ 算法

Kmeans算法的缺陷 • 聚类中心的个数K 需要事先给定&#xff0c;但在实际中这个 K 值的选定是非常难以估计的&#xff0c;很多时候&#xff0c;事先并不知道给定的数据集应该分成多少个类别才最合适• Kmeans需要人为地确定初始聚类中心&#xff0c;不同的初始聚类中心可能导致…

螺旋桨设计软件_我们又双叒叕获得一项国家软件著作权!

近日中建三局一公司深圳分公司岗厦天元花园项目“实时监测数据可视化与BIM集成展示平台(简称监测数据可视化集成展示平台)V1.0”荣获国家软件著作权该项成果由岗厦天元花园项目与哈尔滨工业大学深圳校区组成的科研团队共同完成该平台能收集钢结构塔冠的水平位移、应变、温度、风…

计算机界和数学界,也需要一个“希波克拉底誓言”

汉娜弗莱&#xff1a; “未来不会就这么来到我们眼前&#xff0c;我们一直在塑造它。”摄影&#xff1a;Paul Wilkinson | The Guardian来源 The Guardian翻译 刘勤编辑 魏潇一位学界的领军人物表示&#xff0c;数学家、工程师以及科学家们应通过一个计算机界的“希波克拉底…

matplotlib显示特殊符号(gamma,alpha,beta)

plt.title(r$\gamma$) plt.title(r$\alpha$) plt.title(r$\beta$)

WCF技术实现基于角色的访问控制

第一次写&#xff0c;小紧张&#xff01; 即将毕业了&#xff0c;现在将我毕业设计中用到的小的编程技术以及自己的一些理解分享出来&#xff0c;希望可以做点小贡献。 首先要感谢网上各路大神无私的分享&#xff0c;没有你们&#xff0c;就没有我的收获。 在大四之前&#xff…

double类型占几个字节_MongoDB 中的数据类型

1 JSON 与 BSONMongoDB 是文档数据库&#xff0c;什么是文档呢&#xff1f;如果你看了之前的文章相信你已经有些概念了&#xff0c;这里的文档不是指 Word、PDF 这样的文档&#xff0c;而是类似 JSON(JavaScript Object Notation) 的对象&#xff0c;由不同的键以及对应的值组成…

每天一个Linux命令(17)--whereis命令

whereis 命令只能用于程序名的搜索&#xff0c;而且只搜索二进制文件&#xff08;参数-b&#xff09;、man说明文件&#xff08;参数-m&#xff09;和源代码文件&#xff08;参数-s&#xff09;。如果省略参数&#xff0c;则返所有信息。 和find相比&#xff0c;whereis查找的速…

李德毅院士:未来交通——自动驾驶与智能网联

图片来源&#xff1a;华龙网转自&#xff1a;主线科技&#xff08;trunktech&#xff09;近日&#xff0c;中国国际智能产业博览会&#xff08;智博会&#xff09;在重庆召开。中国人工智能学会理事长李德毅院士在智博会“人工智能产业发展合作论坛”上&#xff0c;发表了主题为…

C++输入一个整数后接着输入字符串

当我们输入整数&#xff0c;按回车&#xff0c;实际上输入的是:整数和换行符号(\n)。cin把整数读进了&#xff0c;但是换行符号没有读&#xff0c;因此如果接下来输入字符串&#xff0c;即使用cin.getline&#xff0c;首先会读入\n。然后就直接结束了。 下面这个程序需要输入四…

elasticsearch 查看索引_ElasticSearch 索引基本操作

松哥原创的 Spring Boot 视频教程已经杀青&#xff0c;感兴趣的小伙伴戳这里-->Spring BootVue微人事视频教程ElasticSearch 系列第五篇&#xff0c;和大家聊一聊索引的基本操作&#xff0c;前四篇传送门&#xff1a;打算出一个 ElasticSearch 教程&#xff0c;谁赞成&#…

C++ istringstream重新绑定和处理另一个字符串

当我们用istringstream处理完一个字符串后&#xff0c;如果想接着处理另外一个字符串&#xff0c;要首先对该istringstream调用clear&#xff08;&#xff09;方法&#xff0c;才能接着绑定下一个字符串 看个例子&#xff1a; #include<iostream> #include<string&g…

协作机器人鼻祖“重生”,卷土重来的Rethink能否给行业注入一针强心剂?

来源&#xff1a;机器人大讲堂十年之前&#xff0c;他横空出世&#xff0c;创新颠覆 2008年&#xff0c;美国机器人制造专家&#xff0c;麻省理工学院计算机科学与人工智能实验室创始主任罗德尼布鲁克斯创建了Rethink Robotics公司&#xff0c;他将基于行为的人工智能理论和其在…

HTML基础做出属于自己的完美网页

HTML HTML解释&#xff1a; HTML是英文Hyper Text Mark-up Language(超文本标记语言)的缩写&#xff0c;他是一种制作万维网页面标准语言&#xff08;标记&#xff09;。相当于定义统一的规则&#xff08;W3C&#xff09;&#xff0c;大家都来遵守他&#xff0c;这样就可以让浏…

excel进销存管理系统_【实例分享】勤哲Excel服务器做企业进销存财务管理系统...

如今&#xff0c;企业在推进数字化选型的时常有很多焦虑&#xff0c;难以找到合适的产品正是其中之一。正如一家正在挑选信息化管理软件的企业&#xff0c;对信息化产品的理解与厂商提供的产品可能完全不同&#xff0c;企业真正想要的是具备发货管理之类功能完全贴合企业业务需…

C++ multimap的插入

不同于map&#xff0c;multimap不能使用中括号[]法插入&#xff0c;multimap插入的一种简单做法是&#xff1a; multimap.insert({key, value}) int main(){multimap<int, int> mm;mm.insert({ 1, 2 });mm.insert({ 1, 2 });mm.insert({ 1, 3 });mm.insert({ 5, 6 });m…