$_POST[●●]の●●の書き方は関係ありません。 ENT_QUOTESを指定する必要があるのは、以下の両方の条件を満たす場合です。 ・属性値を出力している場合 ・属性値をシングルクォート「'」で囲っている場合 すなわち、以下のようなケースです <input name="a" value='<?php echo htmlspecialchars($_POST["a"], ENT_QUOTES, "UTF-8"); ?>'> value=の右辺をシングルクォートで囲っています。この場合、シングルクォートがそのまま出力されると、その時点でシングルクォートで囲った文字列が終わりになるので、それを避ける為に、シングルクォートもエスケープする必要があります。 一方、属性値をダブルクォートで囲む場合は、ENT_QUOTESでも、ENT_COMPATでもよいです。以下の例では、value=の右辺をダブ