返回资源的无辜PHP函数?

时间:2017-07-18 18:34:33

标签: php

某些PHP函数(如fopen())的返回值类型为“resource”。

但是,大多数这些功能都需要一些实际的外部资源,例如文件或数据库。或者他们需要安装额外的PHP扩展,例如curl_open()

我有时想在https://3v4l.org上尝试不同的值类型,我不能依赖外部资源。

可能与此相关的另一种情况是单元测试,我们通常希望尽可能少的副作用。

那么,获取类型资源值的最简单方法是什么,没有外部副作用,第三方扩展或外部依赖?

3 个答案:

答案 0 :(得分:2)

我用

当我只需要一个文件流资源时,

fopen('php://memory', 'w');fopen('php://temp', 'w');

如果缓冲区超过2mb,

php://temp会更好。

答案 1 :(得分:1)

您可以使用php://memoryphp://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));

我会说它仍然没有完全没有副作用,因为它在某个地方对文件做了些什么。欢迎更好的想法!