php中函数怎么调用参,php – 将参数传递给可调用函数
标签:php
我似乎无法让这个工作.我有一个函数,它接受一个我想调用的参数.
protected function testFunc($param) {
echo $param;
}
protected function testCall(callable $testFunc) {
call_user_func($testFunc);
}
public function testProg($param) {
$this->testCall([$this, 'testFunc']);
}
我试过了
$this->testCall([[$this, 'testFunc'], $param]);
和
$this->testCall([$this, 'testFunc($param)']);
和
$this->testCall('TestClass::testFunc($param));
闭包是我唯一的选择,或者如何将参数传递给可调用函数
解决方法:
要调用方法(在您的示例函数中是类方法),您必须使用以下语法:
protected function testCall( $testFunc )
{
call_user_func( array( $this, $testFunc ) );
}
要传递参数,您必须使用以下语法:
protected function testCall( $testFunc, $arg )
{
call_user_func( array( $this, $testFunc ), $arg );
}
(...)
$this->testCall( 'testFunc', $arg );
要传递多个参数,必须使用call_user_func_array:
protected function testCall( $testFunc, array $args )
{
call_user_func_array( array( $this, $testFunc ), $args );
}
(...)
$this->testCall( 'testFunc', array( $arg1, $arg2 ) );
编辑:
上面的代码工作正常,但是 – 在评论中很快就注意到了 – 前面的代码:
protected function testCall( callable $testFunc, $arg )
在上述情况下不起作用.
要使用它,必须修改上述方法和调用:
protected function testCall( callable $testFunc, $arg )
{
call_user_func( $testFunc , $arg );
}
(...)
$this->testCall( array( $this, 'testFunc'), $arg );
标签:php
来源: https://codeday.me/bug/20190727/1555907.html
php中函数怎么调用参,php – 将参数传递给可调用函数相关推荐
- python中调用函数时必须有实参_Python之函数(一)定义函数以及传参
定义函数以及传参 函数的定义 def 函数名(): 函数体 例子: def func():#def关键字--定义 func函数名--和变量定义规则一样 ()必须要写格式 :声明 语句结束 s=[1,2 ...
- python 函数的调用的时候参数的传递_python定义函数时的参数调用函数时的传参...
一.定义函数: 1.位置参数:直接定义参数 2.默认参数(或者关键字参数):参数名 = "默认值" 3.位置参数必须在默认参数之前 二.调用函数: 1.按位置传,直接写参数的值 2 ...
- 点击事件调用匿名函数如何传参_事件发布/订阅模式的简单实现
这是一种广泛应用于异步编程的模式,是回调函数的事件化,常常用来解耦业务逻辑.事件的发布者无需关注订阅的侦听器如何实现业务逻辑,甚至不用关注有多少个侦听器存在.数据通过消息的方式可以灵活的传递. --& ...
- vue函数如何调用其他函数?_编程|如何简单理解函数的传参、返回、调用
1 函数内部变量的局部性 在一个函数中定义的变量(包括实参),其作用域仅限于定义它的函数中,在其它的函数不能使用,这种变量称为"局部变量". 局部变量的作用域:函数内部声明和定义的 ...
- c语言中接口和函数的区别,接口与类的关系_接口函数和调用函数有什么区别
描述 接口与类的关系 类与接口是两个概念,不能混淆. 接口概念 程序接口是操作系统为用户提供的两类接口之一,编程人员在程序中通过程序接口来请求操作系统提供服务.面向过程语言最基本的单元是过程和函数. ...
- js基础(七){事件的分类 绑定事件 函数中的this 字符串 函数的传参规则 严格模式}
JS中的常用事件 什么叫做事件 所谓的事件,是浏览器监听用户行为的一种机制. 比如,当用户使用鼠标 "点击" 一个按钮,会触发该按钮的"点击"事件 如果此时我们 ...
- DllMain中不当操作导致死锁问题的分析--进程对DllMain函数的调用规律的研究和分析
不知道大家是否思考过一个过程:系统试图运行我们写的程序,它是怎么知道程序起始位置的?很多同学想到,我们在编写程序时有个函数,类似Main这样的名字.是的!这就是系统给我们提供的控制程序最开始的地方(注 ...
- ACMNO.33 C语言-最大值3 分别用函数和带参的宏,从三个数中找出最大的数。
题目描述 分别用函数和带参的宏,从三个数中找出最大的数. 输入 3个实数 输出 最大的数,输出两遍,先用函数,再用宏. 保留3位小数. 样例输入 1 2 3 样例输出 3.000 3.000 来源/分 ...
- 【Android 逆向】函数拦截原理 ( 通过修改 GOT 全局偏移表拦截函数 | 通过在实际被调用的函数中添加跳转代码实现函数拦截 )
文章目录 一.通过修改 GOT 全局偏移表拦截函数 二.通过在实际被调用的函数中添加跳转代码实现函数拦截 一.通过修改 GOT 全局偏移表拦截函数 使用 GOT 全局偏移表 拦截函数 , 只需要将 G ...
- C 语言中可以调用命令行指令的 system()函数
C语言有一个system函数(在<stdlib.h>头中,C++则为<cstdlib>头),可以用来调用终端命令.原型如下: int system(const char *cm ...
最新文章
- Gmapping从开始到放弃—写一个TF 监听
- System Landscape Recommendations for SAP Customer Activity Repository
- 深入浅出Websocket(二)分布式Websocket集群
- tronado restful
- 阿里云系列——4.网站备案后续(详细步骤)---2015-11.12
- Autodesk PowerInspect 2021中文版
- esp32外部中断_玩转 ESP32 + Arduino (四) 电容按键 霍尔传感器 外部中断 延时 脉冲检测...
- MVC3 Razor学习资料汇总(ScottGu的博客截至2011-02-15动态)
- 5专题总结-数据结构
- 抖音封禁超万账号;小米回应手机壳含毒;百度网盘封杀非官方版 | CSDN极客头条
- comon lisp标准_Common Lisp 的一些函数
- MATLAB与信号处理
- HTML超链接使用代码
- 苹果电脑mac系统空间不足怎么清理内存优化?最详细的教程分享
- 交通生成器Road Architect推荐
- acml会议级别_人工智能领域的顶级学术会议大全(二)
- 怎么把文件发给商家打印?如何给商家发送需打印的文件
- js修改伪元素的属性、styleSheets获取样式表,Failed to read the 'cssRules' property from 'CSSStyleSheet' Cannot acces
- 机器学习数据集!CV、NLP 一应俱全
- 数据结构笔记10-图的逻辑结构
热门文章
- Atitit 读取文件并处理目录1.1. 3. 以二进制读取 fread取代fgets 11.2. 4.将整个文件读入到一个字符串的方法 file_get_contents() 11.3.
- Atitit db deadlock prblm cause and solu 数据库死锁原因与解决 在数据库中有两种基本的锁类型:排它锁(Exclusive Locks,即X锁)和共享
- atitit..代码生成流程图 流程图绘制解决方案 java c#.net php v2
- Atitit.软件与编程语言中的锁机制原理attilax总结
- atitit js 开发工具 ide的代码结构显示(func list) outline总结
- paip. http 405 的解决..
- paip.提升效率---质量控制--代码风格模板化
- paip.网站扫描安全工具hp WebInspect 使用指南
- paip.ajax没有起作用,提示 no transport
- 富国银行眼下乱成一团糟:数据中心被烟雾笼罩,银行网站和应用软件宕机