делает эхо равным fputs (STDout)?

Является ли echo равным fputs( STDOUT ) или выполняет echo запись в другой поток? Некоторое время я использовал PHP, но я не очень хорошо знаю, что на самом деле происходит на более низком уровне.

Согласно справочной странице PHP на обертках , ответ №.

PHP: // выводим

php: // output – это поток только для записи, который позволяет вам записывать в выходной буферный механизм так же, как print () и echo ().

print и echo записывать в поток php://output , тогда как fputs(STDOUT) записывает в php://stdout .

Я сделал небольшой тест:

 <?php $output = fopen('php://output', 'w'); ob_start(); echo "regular echo\n"; fwrite(STDOUT, "writing to stdout directly\n"); fwrite($output, "writing to php://output directly\n"); $ob_contents = ob_get_clean(); print "ob_contents: $ob_contents\n"; 

Этот скрипт выводится (проверен на PHP 5.2.13, windows):

 writing to stdout directly ob_contents: regular echo writing to php://output directly 

т.е. запись в STDOUT напрямую обходит ob обработчиков.