标签:creat get start 切换 serve 直接 work 函数 server
use
关键字引入外部变量到当前作用域禁止使用引用,以免发生数据错乱;Class::$array
/ 全局变量 $_array
/ 全局对象属性 $object->array
/ 其他超全局变量 $GLOBALS
等保存协程上下文内容,以免发生数据错乱;__get
/ __set
魔术方法中不能有协程切换。示例一:协程中使用exit函数抛出 ExitException 异常
function route()
{
controller();
}
function controller()
{
your_code();
}
function your_code()
{
co::sleep(.001);
exit(1);
}
go(function () {
try {
route();
} catch (\Swoole\ExitException $e) {
var_dump($e->getMessage());
var_dump($e->getStatus() === 1);
var_dump($e->getFlags());
}
});
示例二:协程中使用exit函数抛出 ExitException 异常
$exit_status = 0;
go(function () {
try {
exit(123);
} catch (\Swoole\ExitException $e) {
global $exit_status;
$exit_status = $e->getStatus();
}
});
swoole_event_wait();
var_dump($exit_status);
示例三:协程中直接抛出 RuntimeException 异常
function test() {
throw new \RuntimeException(__FILE__, __LINE__);
}
Swoole\Coroutine::create(function () {
try {
test();
}
catch (\Throwable $e) {
echo $e;
}
});
标签:creat get start 切换 serve 直接 work 函数 server
原文地址:https://www.cnblogs.com/danhuang/p/13289285.html