php 方法参数传递,在PHP中将实例方法作为参数传递
我想创建一个Listener类
class Listener {
var $listeners = array();
public function add(callable $function) {
$this->listeners[] = $function;
}
public function fire() {
foreach($this->listeners as $function) {
call_user_func($function);
}
}
}
class Foo {
public function __construct($listener) {
$listener->add($this->bar);
}
public function bar() {
echo 'bar';
}
}
$listener = new Listener();
$foo = new Foo($listener);
但是此代码失败并出现此错误:
Notice: Undefined property: Foo::$bar in index.php on line 18
Catchable fatal error: Argument 1 passed to Listener::add() must be callable, null given, called in index.php on line 18 and defined index.php on line 5
我究竟做错了什么?
php 方法参数传递,在PHP中将实例方法作为参数传递相关推荐
- java 方法当参数_如何在Java中将函数作为参数传递?
如何在Java中将函数作为参数传递? 这个问题在这里已有答案: Java Pass方法作为参数 14个答案 是否可以将方法作为参 ...
- Delphi 中将对象作为参数传递的使用
Delphi 中将对象作为参数传递的使用 举例分析 2009-07-24 13:40 下面的单击事件,将要调用一个以对象为参数的方法,并将结果显示出来. procedure TForm1.btn1Cl ...
- 【Groovy】Groovy 扩展方法 ( 扩展静态方法示例 | 扩展实例方法示例 | 扩展实例方法与扩展静态方法代码相同 )
文章目录 一.扩展静态方法示例 二.扩展实例方法示例 三.扩展实例方法与扩展静态方法代码相同 一.扩展静态方法示例 在上一篇博客 [Groovy]Groovy 扩展方法 ( Groovy 扩展方法引入 ...
- 【Java代码】使用双冒号 :: 简洁代码及方法引用(静态方法+构造方法+实例方法+函数式编程举例)
1.stream举例 // 1.实例方法 List<String> list = paramIns.stream().map(paramIn::getXxx).collect(Collec ...
- ios oc数组转换为c语言数组,iOS中将数组作为参数传递给服务器
好像并没有发现iOS中直接放数组传的,所以我就把数组转化为相应的字符串来传递 方法一: NSMutableArray *array = [NSMutableArray array]; for (Mod ...
- python传递参数给sql_python-如何在SQLAlchemy Core中将列名作为参数传递?
我有一个sqlalchemy核心批量更新查询,我需要以编程方式传递要更新的列的名称. 该函数如下所示,其中包含每个变量的注释: def update_columns(table_name, pids, ...
- linux shell数组参数传递参数,在bash中将数组作为参数传递
慕哥6287543 您可以使用以下内容将多个数组作为参数传递:takes_ary_as_arg(){ declare -a argAry1=("${!1}") echo " ...
- java 函数 作为参数_如何在Java中将函数作为参数传递?
小编典典 Java 8及以上 如果你的类或接口只有一个抽象方法(有时称为SAM type),则使用Java 8+ lambda表达式,例如: public interface MyInterface ...
- python 加一个月 日期,有没有一种简单的方法可以在Python中将datetime对象增加一个月?...
本问题已经有最佳答案,请猛点这里访问. 所以我试图找到一种方法,将日期时间对象增加一个月.然而,根据这个问题,这似乎不是那么简单. 我希望有这样的事情: import datetime as dt n ...
最新文章
- Windows下MetaMap工具安装
- ASP.NET Core on K8S深入学习(7)Dashboard知多少
- IOS 为UILabel添加长按复制功能
- javaScript——原型
- 10个前端开发人员必须知道的CSS框架
- jquery系列教程3-DOM操作全解
- Cisdem DVD Burner for Mac(DVD光盘刻录软件)
- python mock接口返回数据(转载)
- ES6阮一峰读书笔记第二章变量的解构赋值
- 【VMware vSAN 7.0】4.8 有关 vSAN 许可证的注意事项—我们有软硬件解决方案
- 【IT项目管理】第3章 整合项目的资源
- android srgb模式,一加3固件官方更新:加入屏幕边缘防误触和sRGB显示模式功能
- 移动物联网卡APN如何设置?
- Composer -- PHP依赖管理的新时代
- VS code 代码鼠标滑轮缩放
- 【自动驾驶摸爬滚打路】自动驾驶仿真软件SCANeR 001初相识
- python 数学公式_python的数学算法函数及公式用法
- Java if判断,while判断,Do while判断,Switch判断
- ini 文件 使用说明
- android系统firefox,Android平台Firefox——Fennec编译手记
热门文章
- JavaScript 参考教程——写在前面
- winfrom软件开发汽车测试_ETci — 全自动软件测试调度(持续集成)平台
- python qt快速入门_PyQt5快速入门(一)
- 左斜杠和右斜杠有什么区别_「斜杠云」SEO推广和SEO优化有什么区别?
- mssql导出数据到mysql_MSSQL数据导出到MYSQL
- 标题 计算机构自由度时主要步骤有哪些,2010年1月全国自考混凝土结构设计试题和答案...
- mysql主从架构升级_实战项目——mysql主从架构的实现
- python展开 c函数中的宏预处理_C中的预处理宏
- 如何检测本计算机耗电量,如何查看电脑耗电量?鲁大师查看电脑使用功率的方法...
- VisualStudio2019配置OpenCV