4

var_dump() と同じ方法で、特定のオブジェクト/リソースのインスタンス ID を PHP で取得する方法を探しています。

var_dump(curl_init()); // resource #1 of type curl
var_dump(curl_init()); // resource #2 of type curl

var_dump() を呼び出さずにインスタンス数を取得するにはどうすればよいですか? 出来ますか?

4

6 に答える 6

6

これをintに変換して、リソースIDを取得します。

$resource= curl_init();
var_dump($resource);
var_dump(intval($resource));
于 2009-12-05T22:24:57.933 に答える
4

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);
于 2009-12-05T22:23:56.610 に答える
3

これは非常に興味深い質問です...これを何に使用するかを知りたいのですが...しかし、ここに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);

比較: https://stackoverflow.com/a/68303184/367456

于 2009-12-05T22:19:44.200 に答える
0
function get_resource_id($resource) {
    if (!is_resource($resource))
        return false;

    return array_pop(explode('#', (string)$resource));
}
于 2012-12-27T21:40:47.733 に答える