# 协程isExist 这篇文章,我们实现一个判断某个协程是否存在的接口: ```php Study\Coroutine::isExist(long $cid): bool ``` 我们先定义方法参数,在`study_coroutine_util.cc`文件中进行定义: ```cpp ZEND_BEGIN_ARG_INFO_EX(arginfo_study_coroutine_isExist, 0, 0, 1) ZEND_ARG_INFO(0, cid) ZEND_END_ARG_INFO() ``` 方法接收一个协程id。 然后实现这个接口: ```cpp PHP_METHOD(study_coroutine_util, isExist) { zend_long cid = 0; bool is_exist; ZEND_PARSE_PARAMETERS_START(1, 1) Z_PARAM_LONG(cid) ZEND_PARSE_PARAMETERS_END_EX(RETURN_FALSE); auto coroutine_iterator = Coroutine::coroutines.find(cid); is_exist = (coroutine_iterator != Coroutine::coroutines.end()); RETURN_BOOL(is_exist); } ``` 我们直接在`Coroutine::coroutines`中查找这个协程是否存在,如果找到,则返回`true`;否则返回`false`。 因为上一章我们修复了一个协程死亡后,没有从`Coroutine::coroutines`中删除的bug,所以,我们的`Study\Coroutine::isExist`可以正常使用了。 我们编写测试脚本: ```php