posix_ttyname - 获取当前终端设备名称。
<?php var_dump( posix_ttyname(STDOUT) );
我们启动一个终端,执行上面的代码输出:/dev/tty1
我们再启动一个终端,执行上面的代码输出: /dev/tty2
/dev/tty是指的启动的终端名称,linux中以文件来表示终端。
甚至我们可以让终端之间发送信息,执行以下命令:
echo "YinFangZhen" > /dev/tty1
执行完成后第一个终端就收到YinFangZhen的字符串,效果如下:

然后我们在php多进程编写常驻内存的应用中经常会退出主进程,让子进程转主进程,此时子进程就会继承父进程的终端文件描述符,可以通过以下代码释放
fclose(STDIN),fclose(STDOUT),fclose(STDERR)
PHP不像net支持多继承,自身只支持单继承,为了解决这个问题,php出了Trait这个特性,减少单继承语言的限制。并且能让代码复用率更高。说白了就是一个对象的属性和方法扩展工具一样。例如:trait exts { public f...
在编写多进程的实例中我在每个进程中使用如下代码://调用等待信号的处理器 while (true) { pcntl_signal_dispatch(); }开启5个进程,cpu直接100%修正之后的代码://调用等待信号的处理器 while&...
【一】.迭代器迭代是指反复执行一个过程,每执行一次叫做一次迭代。比如下面的代码就叫做迭代:1. <?php 2. $data = ['1', '2', &...
在使用ftok生成ipc进程通信key尝试将第二个参数项目标识符传入字符串报错:PHP Warning: ftok(): Project identifier is invalid,查阅资料发现第二个字符串只能是1个字符串,长度为1....
将jsonp转为PHP数组和对象。/** * jsonp转数组|Jsonp转json * @param string $jsonp jsonp字符串 * @param bool $as...
第一次听说端口复用是在mixphp最新版本中发现的,mixphp启动监听9501端口,现在作者说可以多开几个进程来执行mixphp,我心里想了下再启动不是会端口冲突嘛,但是却没有问题,于是下载mixphp的源码解读,原来是启动http服务器使用new Co\Http\Server('0.0....