某些PHP函数(如fopen()
)的返回值类型为“resource”。
但是,大多数这些功能都需要一些实际的外部资源,例如文件或数据库。或者他们需要安装额外的PHP扩展,例如curl_open()
。
我有时想在https://3v4l.org上尝试不同的值类型,我不能依赖外部资源。
可能与此相关的另一种情况是单元测试,我们通常希望尽可能少的副作用。
那么,获取类型资源值的最简单方法是什么,没有外部副作用,第三方扩展或外部依赖?
答案 0 :(得分:2)
我用
当我只需要一个文件流资源时, fopen('php://memory', 'w');
或fopen('php://temp', 'w');
。
php://temp
会更好。
答案 1 :(得分:1)
您可以使用php://memory
或php://temp
作为资源。第一个甚至不需要访问系统/tmp
文件夹。
示例:
$resource = fopen('php://temp', 'w+');
答案 2 :(得分:0)
到目前为止,我提出的最好的是tmpfile()
。
它在https://3v4l.org/00VlY中有效。可能他们已经设置了某种沙箱文件系统。
$resource = tmpfile();
var_dump(gettype($resource));
var_dump($resource);
var_dump(intval($resource));
我会说它仍然没有完全没有副作用,因为它在某个地方对文件做了些什么。欢迎更好的想法!