php中的gettype和unknown类型

jus*_*joe 13 php

我刚开始练习PHP内置gettype()及其返回值.该功能能够返回的测试结果,例如boolean,integer,unknown type等,但这些测试结果中,有一个引起了我的眼睛:未知类型.

阅读gettype()并试图在这里找到一些参考,我不能得到任何.

那么,问题是什么类型可以归类为unknown type?有可能还是我只是缺少阅读的东西?

Gor*_*don 20

这是一种未知的类型:

$f = fopen('somefile.txt','r');
echo gettype($f); // resource
fclose($f); 
echo gettype($f); // unknown
Run Code Online (Sandbox Code Playgroud)

基本上,每当资源指针关闭时,持有句柄的变量将指向未知资源.另一个例子是GD'S imagecreate/imagedestroy.

注意:从PHP 7.2开始,这不再适用.然后gettype会回来resource (closed).

  • 另一个有趣的事实 由于它的实现方式,gettype为闭包返回"object". (2认同)
  • 这个答案不再适用于PHP 7.2`echo gettype($ f); 返回资源(已关闭)` (2认同)

Ken*_*ins 6

根据PHP源代码,它是该函数的switch语句中的"默认"情况.我的猜测是有处理内部错误的方法.

  • PHP在我眼中变得更加凌乱. (2认同)