• 解決済 masamune

    (@masamune)


    自動アップグレードを使っていたため気づくのが遅れましたけれど、
    新たにダウンロードした2.8.4-jaのwp-config.phpファイルの末尾に
    「?>」がないのですが、これってまずくありませんか?
    それとも2.8系になって変わったのでしょうか?

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • モデレーター IKEDA Yuriko

    (@lilyfan)

    新たにダウンロードした2.8.4-jaのwp-config.phpファイルの末尾に
    「?>」がないのですが、これってまずくありませんか?

    そんなことはありません。PHP の記法としては許されています。
    コーディングスタイルとしては議論になるところで、ある/なしどちらが優れているかは一長一短があります。WordPress のコーディングスタイルとしては、従来はすべてついていました。これを変更するならば、何らかのアナウンスがほしいところですが……。

    つい先日、私も気づいてブログで記事に纏めたのですが、wp-config.phpはユーザが編集するファイルだからこそ、あえて終了タグを省略したようです。

    このファイルをユーザがテキストエディタで編集した際、何かの拍子に改行コードを付加してしまう可能性があります。これは下手をすると、特定困難なエラーの原因になりかねません。そこで、終了タグを省略し、このような潜在的エラーを回避する措置を施しました。

    詳しくはTicket #10106 wp-config-sample.php missing closing PHP tagでのやり取りをご覧ください。

    PHPの仕様については公式ページの“命令の分離”に、次のような記述があります。

    ファイル終端における PHP ブロックの終了タグはオプション(任意)です。 include() や require() を利用する際には、終了タグを省略する方が無難です。というのは、そうすることでファイルの最後に予期せぬ空白文字があらわれてしまうことを防げますし、後でレスポンスに ヘッダを付加することも可能となるからです。また、出力バッファリングを使用しており、include したファイルの生成する部分の最後に余計な空白を つけたくない場合などにも便利です。

    つまり、HTML中に記述するのでないなら、積極的に省略してしまったほうがいいのかもしれません。

    ちなみに、この変更は2.8から適用されました。私も変更したのならchange.logか何かで告知して欲しかったと思っている一人です。何もアナウンスされてないですよね?

    >lilyfanさん、madhydeさん
    ご教示ありがとうございます。
    なるほど、記述法としてきちんと認められ、なおかつその効用もあるのですね。
    でしたら、これはこれで構いませんが…
    仕様の変更に当たる訳ですから、やはり告知があって然るべきかと思います。

    何はともあれ、胸のつかえが取れました。ありがとうございました。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「wp-config.php」には新たに返信することはできません。