php中readline与fread/fgets的区别

php中readline与fread/fgets的区别,php,io,readline,fgets,fread,Php,Io,Readline,Fgets,Fread,我以前一直在控制台命令中使用readline,但今天我遇到了fread和fgets函数,我的问题是:使用这两种方法有什么区别: // first $inputLine = readline(); // second $inputLine = fgets(STDIN); 它们的功能几乎相同,不是吗?我能想到的唯一可能的区别是,readline()默认情况下不带参数,只能从STDIN读取输入,而fgets()可以读取任何资源。因此,换句话说,readline()是具有第一个预定义参数的fgets

我以前一直在控制台命令中使用
readline
,但今天我遇到了
fread
fgets
函数,我的问题是:使用这两种方法有什么区别:

// first
$inputLine = readline();

// second
$inputLine = fgets(STDIN);

它们的功能几乎相同,不是吗?

我能想到的唯一可能的区别是,
readline()
默认情况下不带参数,只能从
STDIN
读取输入,而
fgets()
可以读取任何
资源。因此,换句话说,
readline()
是具有第一个预定义参数的
fgets
的同义词,例如,
fprintf()
printf()

考虑以下几点:

fprintf(STDOUT, "hello!");
printf("hello!);

这在php标准库中非常常见。

readline()默认从STDIN读取输入,而fgets()从任何资源读取。另外,readline()比fgets()执行要花更多的时间,我对php中的
readline()
不太熟悉。。。我只使用过
fgets()
;)你可以写一个基准测试,看看是否真的有很大的区别。否则,它可能会恰好是您喜欢的。文件指针会起作用,但我现在对它们不太熟悉,更多信息: