1
lincanbin 2015-05-21 09:12:01 +08:00 via Android
实际上是同步的
|
2
jadecoder 2015-05-21 09:22:03 +08:00
call_user_func_array应该是同步的,不知道为什么会叫回调函数
|
3
mcfog 2015-05-21 09:25:00 +08:00
"异步"和“回调”是不一样的两个概念
|
5
cevincheung 2015-05-21 09:31:40 +08:00
因为进行了回调所以叫回调函数?
|
6
cyanhu 2015-05-21 09:32:38 +08:00
好高深啊
|
7
walleL 2015-05-21 09:43:19 +08:00
call_user_func_array() 调用用户函数
我觉得 call_user_func_array("func", array($arg1, $arg2)) 跟 func($arg1, $arg2) 是没区别的, 只是前者允许你动态指定 func |
9
lincanbin 2015-05-21 10:11:40 +08:00
@jadecoder 把一个function作用到一个数组上,相当于精简版的eval,这样作用,也是callback的一种。
你搞混了回调和异步的关系了。 |
10
Septembers 2015-05-21 10:13:36 +08:00
|
11
akstrom 2015-05-21 10:14:25 +08:00
$funname($arg1, $arg2) 也是可以的阿
|
13
wavingclear 2015-05-21 11:43:43 +08:00
@jadecoder 我的理解 call_user_func_array 是给用户自定义函数实现回调的一个基础设施
|
14
jiongjionger 2015-05-21 11:46:44 +08:00
同步执行,非异步
|
15
anewg 2015-05-21 12:36:18 +08:00
@jadecoder http://zh.wikipedia.org/wiki/%E5%9B%9E%E8%B0%83%E5%87%BD%E6%95%B0 右边的图。区别在于调用者的不同,非必须异步。
|
16
jadecoder 2015-05-21 15:27:48 +08:00
@lincanbin @anewg
我从来没把回调和异步搞混,如果你能解释清楚为什么call_user_func_array被称作回调函数就好好解释一下。 我认同@wavingclear 说的call_user_func_array是实现回调的基础设施。但是这不是call_user_func_array被称作回调函数的理由,eval也可以是实现回调的基础设施,但是eval就没有被称作回调函数。 http://php.net/manual/en/function.eval.php |
17
lincanbin 2015-05-21 15:41:24 +08:00
@jadecoder 回调是eval功能的一个很小的子集,那么eval怎么可能被称为回调?
另外,call_user_func_array的作用是调用一个函数作用到输入的一个array上,根据回调的定义,这就是回调啊。 |
18
solupro 2015-05-21 15:55:02 +08:00
@jadecoder
@lincanbin 我觉得是不是大家议论的方向不一样 call_user_func_array 一般情况并不会作为回调函数,这里说的回调函数是指它的第一个参数 mixed call_user_func_array ( callable $callback , array $param_arr ) call_user_func_array — Call a callback with an array of parameters 当然你也不是不能把 call_user_func_array 作为回调函数使用,比如 call_user_func_array('call_user_func_array', [function () { echo 'foobar'; }, []]); |
21
linoder 2015-05-21 17:33:26 +08:00
1*当前任务线程是什么状态?
没有Swoole有,php会开多线程么?这里应该是进程吧。你都正在运行了,当然是运行态 2*等待回调函数执行完成后释放,还是直接释放? 进程的释放是程序生命周期结束以后干的事,都还在回调呢,怎么能算生命结束?所有事执行完之后是否 3*call_user_func_array和多线程什么关系? 没有关系 4*PHP实现多线程/多进程用什么扩展? phpThread扩展或者Swoole扩展 5*curl_multi 是多线程么? 没用过,如果谁知道了,求指点 ---------------- 欢迎打脸 |