質問: ob_end_clean と ob_clean の違いはなんですか? ob_end_clean と ob_clean の違いはなんですか? 両方ともバッファ内容を削除するらしいですが、 ob_end_cleanは、バッファ自体も削除 ob_cleanは、バッファ自体は削除しないとあります。 バッファ自体とはどういう意味でしょうか?
回答: バッファ自体というのは、有効な状態のバッファということでしょう。 バッファ自体を削除するというのは、有効にしたバッファを無効にするということだと思います。 ob_start(); //バッファを有効にする echo "hello"; //出力されません echo "world"; //出力されません setcookie("cookiename", "cookiedata"); //セットされます $str01 = ob_get_contents(); //バッファ内容を変数に格納 ob_clean(); //バッファ内容を削除 echo "hello\n"; //出力されません setcookie("cookiename02", "cookiedata02"); //セットされます $str02 = ob_get_contents(); //バッファ内容を変数に格納 ob_end_clean(); //バッファ内容を削除し、バッファを無効にする(バッファ自体も削除) echo "hello"; //出力されます echo $str01; // helloworld と出力されます echo $str02; //hello と出力されます setcookie("cookiename", "cookiedata"); //←エラー となります。