解决方案 »
- wamp运行的php文件为什么装在www文件夹内?
- 一个PHP路径的问题,高手帮下!
- cookie验证码在其他域下调用,ie不能写cookie
- PHP中字符串替换函数的问题。特别奇怪~@-@~!
- 如何在函数的定义中调用我的mysql连接类
- oracel出错,
- 站内关键字搜索的原理、概念是什么?在线等待
- 在用editplus编php时,php不能高亮显示,怎样在editplus中设置?
- HTTP原理上,能否只返回HTTP状态码,不返回内容
- 问题:PHP连接FTP中,如何保存resource以复用
- 求救。。php 安装 mcrypt 但不起效,有mcrypt.so ,但是 php_info里面并没有mcrypt信息段
- 多表查询遇到的难题
$Editor->setConfig('afterEditFun',array(&$this,'sendNotice'));时行赋值的;是当前对象的sendNotice方法,这样
call_user_func()就是调用了sendNotice方法。
2、setConfig()方法就是根据session的状态动态添加成员变量
mixed call_user_func ( callable $callback [, mixed $parameter [, mixed $... ]] )
参数由 $callback 回调函数和参数列表做成
比如
function f($a, $b, $c) {
}
call_user_func('a', 1, 2, 3);
就相当于执行
f(1, 2, 3);
由于回调函数是以变量形式出现的
所以 call_user_func 可以动态执行各种函数(只要参数正确)而无需改变程序本身回调函数可以有以下形式
1、已定义函数:函数名
2、对象的方法:array(对象名, 方法名),array(类名, 方法名)
3、动态创建的函数:create_function(...)
4、闭包:function(...)在实际开发中,call_user_func 这个函数没有 call_user_func_array 使用频度高
因为开列参数灵活性较差
您好,我想问问
1.为什么要通过判断session 的状态来给afterEditFun 赋值呢?
session里面有个作用,就是可以跨页面传递参数。。但是这里我还是不大明白。afterEditFun这个函数功能是编辑该页面内容,后显示编辑后的有关Notice2. 在2.php中想调用1.php的方法,可以通过new A() 将1.php对象实例化来调用。。如果2.php也是一个对象比如class B,那么1.php要想调用2.php的方法,是不是不可以new B(), 这个问题比较白痴,感觉就是不可以。那么除了通过回调函数1.php还有其他办法调用2.php的函数吗?2. $this->afterEditFun 这个成员变量用setConfig赋值时,比如$this->{$var} = $value; 这个语法不是太懂。首先$this->{$var} 有“{}”是什么意思。。还有value是一个数组array (&$this,'sendNotic'),是怎么赋值的呢?
谢谢呢
谢谢你的回答,这部分明白了些。另外:
1.在$afterEditFun回调之前赋值了某个函数的名字,使用了setconfig。这里面对session进行判断,不是太明白。能解答下吗?2. 赋值的语法。比如$this->{$var} = $value; 不是太懂。首先$this->{$var} 有“{}”是什么意思。。还有value是一个数组array (&$this,'sendNotic'),是怎么赋值的呢?
谢谢
你也不能指望十年前的人能写出符合现代潮流的代码,如果作者重写他的这个项目的话,水平将大大提高$this->{$var} = $value;
就是
$this->$var = $value;
是变量的变量,这一点你应该是很清楚的
$a = 1;
$b = 'a';
echo $$b; // 输出 1
$a = array(1,2);
print_r($a); // 输出 Array ([0] =>1 [1] => 2)至于为什么要判断 session,那就与业务逻辑用关系了。仅从代码上是看不出来的