标签: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 – 将参数传递给可调用函数相关推荐

  1. python中调用函数时必须有实参_Python之函数(一)定义函数以及传参

    定义函数以及传参 函数的定义 def 函数名(): 函数体 例子: def func():#def关键字--定义 func函数名--和变量定义规则一样 ()必须要写格式 :声明 语句结束 s=[1,2 ...

  2. python 函数的调用的时候参数的传递_python定义函数时的参数调用函数时的传参...

    一.定义函数: 1.位置参数:直接定义参数 2.默认参数(或者关键字参数):参数名 = "默认值" 3.位置参数必须在默认参数之前 二.调用函数: 1.按位置传,直接写参数的值 2 ...

  3. 点击事件调用匿名函数如何传参_事件发布/订阅模式的简单实现

    这是一种广泛应用于异步编程的模式,是回调函数的事件化,常常用来解耦业务逻辑.事件的发布者无需关注订阅的侦听器如何实现业务逻辑,甚至不用关注有多少个侦听器存在.数据通过消息的方式可以灵活的传递. --& ...

  4. vue函数如何调用其他函数?_编程|如何简单理解函数的传参、返回、调用

    1 函数内部变量的局部性 在一个函数中定义的变量(包括实参),其作用域仅限于定义它的函数中,在其它的函数不能使用,这种变量称为"局部变量". 局部变量的作用域:函数内部声明和定义的 ...

  5. c语言中接口和函数的区别,接口与类的关系_接口函数和调用函数有什么区别

    描述 接口与类的关系 类与接口是两个概念,不能混淆. 接口概念 程序接口是操作系统为用户提供的两类接口之一,编程人员在程序中通过程序接口来请求操作系统提供服务.面向过程语言最基本的单元是过程和函数. ...

  6. js基础(七){事件的分类 绑定事件 函数中的this 字符串 函数的传参规则 严格模式}

    JS中的常用事件 什么叫做事件 所谓的事件,是浏览器监听用户行为的一种机制. 比如,当用户使用鼠标 "点击" 一个按钮,会触发该按钮的"点击"事件 如果此时我们 ...

  7. DllMain中不当操作导致死锁问题的分析--进程对DllMain函数的调用规律的研究和分析

    不知道大家是否思考过一个过程:系统试图运行我们写的程序,它是怎么知道程序起始位置的?很多同学想到,我们在编写程序时有个函数,类似Main这样的名字.是的!这就是系统给我们提供的控制程序最开始的地方(注 ...

  8. ACMNO.33 C语言-最大值3 分别用函数和带参的宏,从三个数中找出最大的数。

    题目描述 分别用函数和带参的宏,从三个数中找出最大的数. 输入 3个实数 输出 最大的数,输出两遍,先用函数,再用宏. 保留3位小数. 样例输入 1 2 3 样例输出 3.000 3.000 来源/分 ...

  9. 【Android 逆向】函数拦截原理 ( 通过修改 GOT 全局偏移表拦截函数 | 通过在实际被调用的函数中添加跳转代码实现函数拦截 )

    文章目录 一.通过修改 GOT 全局偏移表拦截函数 二.通过在实际被调用的函数中添加跳转代码实现函数拦截 一.通过修改 GOT 全局偏移表拦截函数 使用 GOT 全局偏移表 拦截函数 , 只需要将 G ...

  10. C 语言中可以调用命令行指令的 system()函数

    C语言有一个system函数(在<stdlib.h>头中,C++则为<cstdlib>头),可以用来调用终端命令.原型如下: int system(const char *cm ...

最新文章

  1. Gmapping从开始到放弃—写一个TF 监听
  2. System Landscape Recommendations for SAP Customer Activity Repository
  3. 深入浅出Websocket(二)分布式Websocket集群
  4. tronado restful
  5. 阿里云系列——4.网站备案后续(详细步骤)---2015-11.12
  6. Autodesk PowerInspect 2021中文版
  7. esp32外部中断_玩转 ESP32 + Arduino (四) 电容按键 霍尔传感器 外部中断 延时 脉冲检测...
  8. MVC3 Razor学习资料汇总(ScottGu的博客截至2011-02-15动态)
  9. 5专题总结-数据结构
  10. 抖音封禁超万账号;小米回应手机壳含毒;百度网盘封杀非官方版 | CSDN极客头条
  11. comon lisp标准_Common Lisp 的一些函数
  12. MATLAB与信号处理
  13. HTML超链接使用代码
  14. 苹果电脑mac系统空间不足怎么清理内存优化?最详细的教程分享
  15. 交通生成器Road Architect推荐
  16. acml会议级别_人工智能领域的顶级学术会议大全(二)
  17. 怎么把文件发给商家打印?如何给商家发送需打印的文件
  18. js修改伪元素的属性、styleSheets获取样式表,Failed to read the 'cssRules' property from 'CSSStyleSheet' Cannot acces
  19. 机器学习数据集!CV、NLP 一应俱全
  20. 数据结构笔记10-图的逻辑结构

热门文章

  1. Atitit 读取文件并处理目录1.1. 3. 以二进制读取 fread取代fgets 11.2. 4.将整个文件读入到一个字符串的方法 file_get_contents() 11.3.
  2. Atitit db deadlock prblm cause and solu 数据库死锁原因与解决   在数据库中有两种基本的锁类型:排它锁(Exclusive Locks,即X锁)和共享
  3. atitit..代码生成流程图 流程图绘制解决方案 java  c#.net  php v2
  4. Atitit.软件与编程语言中的锁机制原理attilax总结
  5. atitit js 开发工具 ide的代码结构显示(func list) outline总结
  6. paip. http 405 的解决..
  7. paip.提升效率---质量控制--代码风格模板化
  8. paip.网站扫描安全工具hp WebInspect 使用指南
  9. paip.ajax没有起作用,提示 no transport
  10. 富国银行眼下乱成一团糟:数据中心被烟雾笼罩,银行网站和应用软件宕机