获取 PHP 8 套接字的 ID

Getting id of PHP 8 Socket

随着 socket_create() 在 php 8 中返回新的套接字实例,我们如何以转换为 int 的方式获取对此套接字的数字或唯一引用将在早期版本中工作。这用于很多事情,包括日志文件中的连接跟踪和存储有关连接的元数据,当它们从 socket_select().into/return 传递时存储有关连接的元数据。

之前 php 8:

$socket_resource = socket_create(...);
$socket_id = (int)$socket_resource;

php8

之后
$socket_instance = socket_create(...);
$socket_id = (int)$socket_instance; // PHP Warning:  Object of class Socket could not be converted to int

php 8 get_resource_id($resource) 中有一个新函数看起来与转换为 int 相同,但这不适用于套接字。

您可以对任何对象使用 spl_object_id()。这是一个可以重复使用的任意值,但资源 ID 也是如此。