gh8827-002.phpt 849 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. --TEST--
  2. std handles can be deliberately closed 002
  3. --SKIPIF--
  4. <?php
  5. if (php_sapi_name() != "cli") {
  6. die("skip CLI only");
  7. }
  8. if (PHP_OS_FAMILY == 'Windows') {
  9. die("skip not for Windows");
  10. }
  11. if (PHP_DEBUG) {
  12. die("skip std streams are not closeable in debug builds");
  13. }
  14. if (getenv('SKIP_REPEAT')) {
  15. die("skip cannot be repeated");
  16. }
  17. ?>
  18. --FILE--
  19. <?php
  20. $stdin = fopen('php://stdin', 'r');
  21. $stdout = fopen('php://stdout', 'r');
  22. $stderr = fopen('php://stderr', 'r');
  23. ob_start(function ($buffer) use ($stdout) {
  24. fwrite($stdout, $buffer);
  25. }, 1);
  26. print "STDIN:\n";
  27. fclose(STDIN);
  28. var_dump(@fopen('php://stdin', 'r'));
  29. print "STDERR:\n";
  30. fclose(STDERR);
  31. var_dump(@fopen('php://stderr', 'a'));
  32. print "STDOUT:\n";
  33. fclose(STDOUT);
  34. var_dump(@fopen('php://stdout', 'a'));
  35. ?>
  36. --EXPECT--
  37. STDIN:
  38. bool(false)
  39. STDERR:
  40. bool(false)
  41. STDOUT:
  42. bool(false)