在php new一个对象,这个对象有没有唯一的资源标识?

$obj = new class();
这个$obj有没有什么唯一资源标识,如何获取?

慕村225694
浏览 580回答 3
3回答

翻过高山走不出你

spl_object_hash 函数。 不过一般,2个不同object 算出来的值,非常非常非常非常难分辨,肉眼很看不出来差别。所以 echo md5(spl_object_hash($obj));

呼啦一阵风

$obj = new class(); 这个$obj就是唯一标识,从代码来看new出来的class赋值给$obj,$obj就获取到了。嗯,就是这个样子。 莫名其妙的看到了我的答案被踩了两次,有点奇怪; spl_object_hash($object); 返回的是一个对象的唯一码,是一个唯一ID,并不是什么资源标识符,搞不清楚你们是作何理解的。一般new一个对象赋值给一个变量来使用,如果说唯一的资源标识,那肯定是这个变量了(变量指的就是这个对象),单纯的对象标识是没什么用的,需要做其他处理,而从资源方面来说,是可以直接使用的。如 $file = fopen($file_path); 这个$file就是一个资源,可以通过这个资源进行read,write操作

GCT1015

你 var_dump 一下,就可以看到对象有一个 #? 后面有一个序号,就是对象 new 出来的顺序了
打开App,查看更多内容
随时随地看视频慕课网APP