回调同一个类中的函数

写了一个类处理好友,其中有一个方法用来同步好友,而这个方法中需要从微博传来的关注列表和粉丝列表中,找到互相关注的用户,记录一下经验,主要还是关于回调函数。

按照我最初的理解,这样写就可以了

private function getMutualFromSina ($focusList) {
return array_filter($focusList, "filterSinaList");
}
private function filterSinaList ($value) {
return in_array($value, $this->fansList);
}

不过执行后返回一个Warning:

Warning: array_filter() [function.array-filter]: The second argument, ‘filterSinaList‘, should be a valid callback in ***** on line 11

后来查了查,对于类中调用回调函数,应该这样写:

private function getMutualFromSina ($focusList) {
return array_filter($focusList, array($this,"filterSinaList"));
}
private function filterSinaList ($value) {
return in_array($value, $this->fansList);
}
时间: 2024-10-25 13:26:18

回调同一个类中的函数的相关文章

惊天发现之"c#中的Main函数不能调同一个类中的非静态方法"

这是什么原因呢?求大神指点!惊天发现之"c#中的Main函数不能调同一个类中的非静态方法"

qt线程动态回调被调类中的函数

1.需求 要求封装一个qt线程能在不同类中调用,并能回调被调用类中的函数 2.解决 尝试多种方法,最终决定采用动态加载lamda表达式的方法解决 3.代码 catthread.h #ifndef CATTHREAD_H #define CATTHREAD_H #include <QtCore/QThread> #include <functional> class catthread : public QThread { Q_OBJECT public: catthread(QOb

《同一个类中不同方法之间的调用相关问题(省略的类名或者this)》

1 //同一个类中不同方法之间的调用相关问题(省略的类名或者this) 2 class A 3 { 4 public void B() 5 { 6 System.out.println("b方法运行"); 7 } 8 public void C() 9 { 10 B();//下面引用<疯狂Java讲义>中的一段话. 11 /* 12 因为Java里的方法不能独立存在,它必须属于一个类或一个对象, 13 因此方法也不能直接像函数那样被独立执行,执行方法时必须使用 14 类或对

类中的函数重载

函数重载回顾: - 函数重载的本质为相互独立的不同函数; -C++通过函数名和函数参数确定函数调用. -无法直接通过函数名得到重载函数的入口地址. -函数重载必然发生在同一作用域. 类中的重载: -构造函数的重载; -普通成员函数的重载 -静态成员函数的重载 Question: 全局函数,普通成员函数以及静态成员函数之间是否可以构成重载. 万变不离其宗: 1.重载函数的本质为多个不同的函数. 2,函数名和参数列表是唯一的标识符; 3.函数重载必然发生在同一作用域. 深度的意义: -通过函数名对函

梳理:python—同一个类中的方法调用

为什么突然在此提到这个梳理问题呢? 因为在自己实践综合练习学过的知识时,突然觉得有些知识点的运用总是不成功,于是翻过课本进行回顾,总是觉得是对的,可是当再进一步思考"既然是对的,为什么在程序中总是不成功呢?",后来发现,自己理所当然的理解(忽略了细节知识),导致程序通不过,现在结合同一个类中的不同方法中的变量调用 VS 不同函数中的变量调用. 同一个类中的不同方法中的变量调用: class A(): def a_add_b(self): a=10 b=20 self.s =a+b se

类语法规则与类中的函数

类语法 1.关键字class 2.class 类名 类名中不要写括号 3.类名规范:字母.数字.下划线组成,不能以数字开头:驼峰命名法,每个单词首字母大写 4.类属性:放在类中的变量值 调用属性:实例.属性名 5.类方法:类中的函数 调用方法:实例.方法名()---针对实例方法 类属性和类方法都不是类中必须的结构,但是一般都会有,这是类存在的意义 6.类里面的方法分3种: 1)实例方法:这个方法只能实例来调用 必须带有self参数; 括号里的self指的是实例本身,调用该函数时会自动传入实例;

判断在类中某个函数(也可以是变量或类型)是否存在

一,判断在类中某个函数(也可以是变量或类型)是否存在 template<typename T> struct xxxx_detector { template<typename P,void (P::*)(void)> struct detector{}; template<typename P> static char func(detector<P,&P::init>*); template<typename P> static lo

【java&amp;c++】父子类中同名函数的覆盖问题

java和c++两门语言对于父子类中同名函数具有不同的处理方式. 先上两段代码: C++: class Basic { public: void test(string i){ cout << "basic str" <<endl; } void test(int i){ cout << "basic" <<endl; } }; class Senior : public Basic { public: void te

在同一个类中,一个方法调用另外一个有注解(比如@Async,@Transational)的方法,注解失效的原因和解决方法

在同一个类中,一个方法调用另外一个有注解(比如@Async,@Transational)的方法,注解是不会生效的. 比如,下面代码例子中,有两方法,一个有@Transational注解,一个没有.如果调用了有注解的addPerson()方法,会启动一个Transaction:如果调用updatePersonByPhoneNo(),因为它内部调用了有注解的addPerson(),如果你以为系统也会为它启动一个Transaction,那就错了,实际上是没有的. @Service public cla