0

これの出力はどうなりますか?

ob_flush();
session_start();
ob_start();
echo ('hi');
PRINT ' there';
ob_end_clean();
{
      ' Programmer';
}

私はいくつかのPHPの質問に取り組んでいました、私はこれに来ました。この質問の解決策は何でしょうか?何か案が?

4

3 に答える 3

3

何も印刷されません。で出力バッファリングがオンになっているob_start()ため、ob_end_clean()は「出力バッファを消去 (消去) し、出力バッファリングをオフにします」。

{
      ' Programmer';
}

文字列をリテラルとして宣言するだけです。

于 2012-04-16T05:27:49.830 に答える
1

さて、これが私がそれを実行したときに得られた出力です...

PHP Notice:  ob_flush(): failed to flush buffer. No buffer to flush in /Users/foo/source/test.php on line 2
PHP Stack trace:
PHP   1. {main}() /Users/foo/source/test.php:0
PHP   2. ob_flush() /Users/foo/source/test.php:2

Notice: ob_flush(): failed to flush buffer. No buffer to flush in /Users/foo/source/test.php on line 2

Call Stack:
    0.0009     624552   1. {main}() /Users/foo/source/test.php:0
    0.0027     624600   2. ob_flush() /Users/foo/source/test.php:2

それがすべてのコードでしたか、それとも実行方法に関する指示がありましたか? Jonathon が指摘したように、これはコマンドラインで実行されました。Apacheまたは他のWebサーバーを実行して、彼の回答で言及されているReasonのJonathonに対して何も出力しないと予想しています。それでも CLI での動作を知っておくと便利です

于 2012-04-16T05:27:07.977 に答える
0
  • ob_flush();動作しません、フラッシュするものはありません、おそらく plast 警告
  • session_start();機能せず、以前の関数呼び出しのために間違いなく警告が表示されます
  • ob_start();出力バッファリングをオンにします
  • echo ('hi');出力バッファにエコー
  • PRINT ' there';出力バッファにも
  • ob_end_clean();戻り値を取得する変数がないため、バッファーの内容を oblivion に送信します
  • {中括弧
  • ' Programmer';何もしません。ここでクレジットカード番号を隠すことができることを確認してください
  • }従来通り

したがって、せいぜい出力なしです。最悪の場合、画面に 3 ~ 4 個の警告が表示されます。display_errorsphpの設定次第。

于 2012-04-16T05:32:57.560 に答える