advanced-php icon indicating copy to clipboard operation
advanced-php copied to clipboard

最近打算写一些php一些偏微妙的教程,比如关于多进程、socket等相关,都是自己的一些感悟心得

Results 8 advanced-php issues
Sort by recently updated
recently updated
newest added

在 案例 `14. PHP [socket初探`中](https://github.com/elarity/advanced-php/blob/master/14.%20PHP%20socket%E5%88%9D%E6%8E%A2%20---%20%E5%90%AB%E7%9D%80%E6%B3%AA%E4%B9%9F%E8%A6%81%E7%A3%95%E5%AE%8Clibevent%EF%BC%88%E4%B8%89%EF%BC%89.md) 聊天代码里 `// 这里值得注意,我们声明两个数组用来保存 事件 和 连接socket $event_arr = []; $conn_arr = []; // 此处值得注意,我们需要将事件本身存储到全局数组中,如果不保存,连接会话会丢失,也就是说服务端和客户端将无法保持持久会话 $event_arr[ intval( $conn ) ] = $event; ` 这里的`event_arr` 感觉完全没有应到到其他地方 只是将event保存了到数组并没有对数组进行操作

7.1以后可以用`pcntl_async_signals()`代替while `pcntl_signal_dispatch()`

$pid = pcntl_fork(); if( $pid > 0 ){ // 下面这个函数可以更改php进程的名称 cli_set_process_title('php father process'); // 返回值保存在$wait_result中 // $pid参数表示 子进程的进程ID // 子进程状态则保存在了参数$status中 // 将第三个option参数设置为常量WNOHANG,则可以避免主进程阻塞挂起,此处父进程将立即返回继续往下执行剩下的代码 $wait_result = pcntl_waitpid( $pid, $status, WNOHANG ); var_dump(...

`yield`的`send()`会调用`next()`,而 `foreach`本身也会调用`next()`,所以 在 https://github.com/elarity/advanced-php/blob/master/17.%20PHP%E4%B8%AD%E7%9A%84yield%EF%BC%88%E4%B8%8A%EF%BC%89.md 中最后提到的行为是预期行为,并不是一个bug https://3v4l.org/lvAuH ,其实在`foreach`中打一个分割线出来就很明显了

```aux```是```BSD```风格,建议作者以后```ps aux```不要再带```-```了,虽然现在的系统做了兼容处理也能显示正确内容,但是看着比较别扭。

你好,我看到手册里 `posix_setsid() 函数的返回值`: > Returns the session id, or -1 on errors. 下边这样的写法是不是错误的: ``` if (!posix_setsid()) { exit(' setsid error. '); } ``` 是不是应该这样: ``` if (-1 === posix_setsid()) {...

![32](https://user-images.githubusercontent.com/29528188/42857493-ac05535a-8a7c-11e8-933a-5065d1cae6bc.png)