teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

4

追記

2021/07/21 04:15

投稿

mpyw
mpyw

スコア5223

answer CHANGED
@@ -3,4 +3,4 @@
3
3
  - `"php://stdin"` はストリームラッパー形式の単なる文字列表現である。 `fopen()` に渡すとストリームハンドラを取得できる。 但し, `PHP_SAPI === 'cli'` 以外の環境では **何も読み取れないストリーム** という扱いになる。エラーになるわけではない。
4
4
  - `STDIN` は `PHP_SAPI === 'cli'` の場合のみ存在している定数であり,中身はストリームハンドラ。既に `fopen()` で開かれた状態で存在しているようなもの。 Web サーバとして動いている `PHP_SAPI === 'fpm-fcgi'` などの環境で参照すると存在しない定数としてエラーとなる。`fclose(STDIN)` されていた場合はもう使えない状態になっている。
5
5
 
6
- より,ぶっちゃけどっちでもいいですが, `PHP_SAPI === 'cli'` のチェックをせずに `STDIN` を参照するのはやめたほうがいいかなーというぐらいです。チェックしてるなら本当にどっちでもいいです。
6
+ より,ぶっちゃけどっちでもいいですが, `PHP_SAPI === 'cli'` のチェックをせずに `STDIN` を参照するのはやめたほうがいいかなーというぐらいです。チェックしてるなら本当にどっちでもいいです。 `fclose(STDIN)` に関しても書くほうが悪いでしょ、って感じなので

3

追記

2021/07/21 04:15

投稿

mpyw
mpyw

スコア5223

answer CHANGED
@@ -1,6 +1,6 @@
1
1
  技術的な面については回答があるので,端的に使い分けだけを示しますと
2
2
 
3
3
  - `"php://stdin"` はストリームラッパー形式の単なる文字列表現である。 `fopen()` に渡すとストリームハンドラを取得できる。 但し, `PHP_SAPI === 'cli'` 以外の環境では **何も読み取れないストリーム** という扱いになる。エラーになるわけではない。
4
- - `STDIN` は `PHP_SAPI === 'cli'` の場合のみ存在している定数であり,中身はストリームハンドラ。既に `fopen()` で開かれた状態で存在しているようなもの。 Web サーバとして動いている `PHP_SAPI === 'fpm-fcgi'` などの環境で参照すると存在しない定数としてエラーとなる。`fclose(ST3IN)` されていた場合はもう使えない状態になっている。
4
+ - `STDIN` は `PHP_SAPI === 'cli'` の場合のみ存在している定数であり,中身はストリームハンドラ。既に `fopen()` で開かれた状態で存在しているようなもの。 Web サーバとして動いている `PHP_SAPI === 'fpm-fcgi'` などの環境で参照すると存在しない定数としてエラーとなる。`fclose(STDIN)` されていた場合はもう使えない状態になっている。
5
5
 
6
6
  より,ぶっちゃけどっちでもいいですが, `PHP_SAPI === 'cli'` のチェックをせずに `STDIN` を参照するのはやめたほうがいいかなーというぐらいです。チェックしてるなら本当にどっちでもいいです。

2

追記

2021/07/21 04:13

投稿

mpyw
mpyw

スコア5223

answer CHANGED
@@ -1,6 +1,6 @@
1
1
  技術的な面については回答があるので,端的に使い分けだけを示しますと
2
2
 
3
3
  - `"php://stdin"` はストリームラッパー形式の単なる文字列表現である。 `fopen()` に渡すとストリームハンドラを取得できる。 但し, `PHP_SAPI === 'cli'` 以外の環境では **何も読み取れないストリーム** という扱いになる。エラーになるわけではない。
4
- - `STDIN` は `PHP_SAPI === 'cli'` の場合のみ存在している定数であり,中身はストリームハンドラ。既に `fopen()` で開かれた状態で存在しているようなもの。 Web サーバとして動いている `PHP_SAPI === 'fpm-fcgi'` などの環境で参照すると存在しない定数としてエラーとなる。
4
+ - `STDIN` は `PHP_SAPI === 'cli'` の場合のみ存在している定数であり,中身はストリームハンドラ。既に `fopen()` で開かれた状態で存在しているようなもの。 Web サーバとして動いている `PHP_SAPI === 'fpm-fcgi'` などの環境で参照すると存在しない定数としてエラーとなる。`fclose(ST3IN)` されていた場合はもう使えない状態になっている。
5
5
 
6
6
  より,ぶっちゃけどっちでもいいですが, `PHP_SAPI === 'cli'` のチェックをせずに `STDIN` を参照するのはやめたほうがいいかなーというぐらいです。チェックしてるなら本当にどっちでもいいです。

1

追記

2021/07/21 04:12

投稿

mpyw
mpyw

スコア5223

answer CHANGED
@@ -1,4 +1,6 @@
1
1
  技術的な面については回答があるので,端的に使い分けだけを示しますと
2
2
 
3
3
  - `"php://stdin"` はストリームラッパー形式の単なる文字列表現である。 `fopen()` に渡すとストリームハンドラを取得できる。 但し, `PHP_SAPI === 'cli'` 以外の環境では **何も読み取れないストリーム** という扱いになる。エラーになるわけではない。
4
- - `STDIN` は `PHP_SAPI === 'cli'` の場合のみ存在している定数であり,中身はストリームハンドラ。既に `fopen()` で開かれた状態で存在しているようなもの。 Web サーバとして動いている `PHP_SAPI === 'fpm-fcgi'` などの環境で参照すると存在しない定数としてエラーとなる。
4
+ - `STDIN` は `PHP_SAPI === 'cli'` の場合のみ存在している定数であり,中身はストリームハンドラ。既に `fopen()` で開かれた状態で存在しているようなもの。 Web サーバとして動いている `PHP_SAPI === 'fpm-fcgi'` などの環境で参照すると存在しない定数としてエラーとなる。
5
+
6
+ より,ぶっちゃけどっちでもいいですが, `PHP_SAPI === 'cli'` のチェックをせずに `STDIN` を参照するのはやめたほうがいいかなーというぐらいです。チェックしてるなら本当にどっちでもいいです。