如何使用PHP获取实例ID

Ali*_*xel 4 php resources object instance var-dump

我正在寻找一种方法来获取PHP的给定对象/资源的实例ID,就像var_dump()一样:

var_dump(curl_init()); // resource #1 of type curl
var_dump(curl_init()); // resource #2 of type curl
Run Code Online (Sandbox Code Playgroud)

如何在不调用var_dump()的情况下获取实例计数?可能吗?

Jos*_*cha 6

PHP 8.0 之前:

(int) curl_init();
Run Code Online (Sandbox Code Playgroud)

PHP 8.0+:

spl_object_id(curl_init());
Run Code Online (Sandbox Code Playgroud)

跨版本:

$handle = curl_init();
is_object($handle) ? spl_object_id($hadle) : (int) $handle;
// unset($handle);
Run Code Online (Sandbox Code Playgroud)


lee*_*ers 6

将其转换为int以获取资源ID:

$resource= curl_init();
var_dump($resource);
var_dump(intval($resource));
Run Code Online (Sandbox Code Playgroud)

  • 这实际上是一个非常好的解决方案.你也可以做(int)$ resource (2认同)
  • 或者,等效的:`(int)$resource`。但手册说,从技术上讲,这种转换是未定义的。 (2认同)