var_dump() と同じ方法で、特定のオブジェクト/リソースのインスタンス ID を PHP で取得する方法を探しています。
var_dump(curl_init()); // resource #1 of type curl
var_dump(curl_init()); // resource #2 of type curl
var_dump() を呼び出さずにインスタンス数を取得するにはどうすればよいですか? 出来ますか?
これをintに変換して、リソースIDを取得します。
$resource= curl_init();
var_dump($resource);
var_dump(intval($resource));
PHP 8.0より前:
(int) curl_init();
PHP 8.0以降:
spl_object_id(curl_init());
バージョン間:
$handle = curl_init();
is_object($handle) ? spl_object_id($hadle) : (int) $handle;
// unset($handle);
これは非常に興味深い質問です...これを何に使用するかを知りたいのですが...しかし、ここに1つの方法があります...
$ch = curl_init();
preg_match("#\d+#", (string) $ch, $matches);
$resourceIdOne = end($matches);
$ch2 = curl_init();
preg_match("#\d+#", (string) $ch2, $matches);
$resourceIdTwo = end($matches);
function get_resource_id($resource) {
if (!is_resource($resource))
return false;
return array_pop(explode('#', (string)$resource));
}