关于 spLaunch 函数的问题 ,我觉得应该是个Bug,求证中
发布于:2022-01-17 09:50:54
#1 kingyang
首先声明我是Php初学者,之前一直做Asp.net. 一接触SP就喜欢上了,回归正题
spRun 执行的第一个句为 spLaunch ( "router_prefilter" ),因此我想注入我自己的router_prefilter. 而同时我想使用单独的函数模式,而不是类+函数. 这时应该调用call_user_func_array 来执行我自己的函数,但是 $launchargs 默认为null 就引起了定义的函数执行不了. 我的Php版本为5.3.17.
目前我的处理方法是 修改SP把
function spLaunch($configname, $launchargs = null, $returns = FALSE)
改为
function spLaunch($configname, $launchargs = array(), $returns = FALSE)
也就是传入空数组就解
2012-12-13 23:23:35
#2 kingyang
通过修改的方式 就破坏了Sp的独立性 希望斑竹解答:):):)
2012-12-13 23:26:24
#3 jake
call_user_func_array 第二个参数可以为null,函数会正常执行。见下面代码:
function foobar() {
echo __FUNCTION__, " got foobar";
}
function run($func, $args = null){
call_user_func_array($func, $args);
}
run("foobar");
?>
PS:下次,BUG请发到BUG提交与答复区。本帖将转移。
2012-12-14 09:21:21
#4 kingyang
jake 发表于 2012-12-14 09:21
call_user_func_array 第二个参数可以为null,函数会正常执行。见下面代码:要区分:参数传入什么和参数默 ...
非常感谢jake的答复:
function foobar() {
echo __FUNCTION__, " got foobar";
}
function run($func, $args = null){
call_user_func_array($func, $args);
}
run("foobar");
?>
我的环境是 IIS +Php5.3.17,上面代码我测试过程中 也存在这个问题.
function run($func, $args = null) 是执行不到footbar的,
只有改为
function run($func, $args = array())
2012-12-15 08:48:35
#5 jake
kingyang 发表于 2012-12-15 08:48
非常感谢jake的答复:我的环境是 IIS +Php5.3.17,上面代码我测试过程中 也存在这个问题.
function run($f ...
执行不到,那么提示是什么呢?
2012-12-15 08:52:03
#6 kingyang
刚才准备给你发消息,看到我没权限.
错误日志里面也没记录错误,应该是直接跳过了,
2012-12-15 08:56:34
#7 jake
好,的确是个bug,记录!
感谢楼上支持。
2012-12-15 09:16:15