PHPのお勉強!

PHP TOP

PHP タグ

PHP はファイルを解析して開始タグと終了タグ (<?php?>) を探します。 タグが見つかると、PHP はコードの実行を開始したり終了したりします。 このような仕組みにより、PHP を他のあらゆる形式のドキュメント中に 埋め込むことができるのです。つまり、開始タグと終了タグで囲まれている 箇所以外のすべての部分は、PHP パーサに無視されます。

PHP では、短い形式のechoタグ <?= も使えます。 これは、より冗長な <?php echo を短くしたものです。

PHP では、短い形式の開始タグ <? も使えます (しかしこれはおすすめしません。というのも、この形式のタグは php.inishort_open_tag を有効にするか --enable-short-tags オプションつきで PHP を configure した場合でないと使えないからです)。

ファイルが PHP コードのみを含む場合は、ファイルの最後の終了タグは省略するのがおすすめです。 終了タグの後に余分な空白や改行があると、予期せぬ挙動を引き起こす場合があるからです。 余分な空白や改行のせいで PHP が出力バッファリングを開始し、その時点の内容を意図せず出力してしまうことになります。

<?php
echo "みなさん、こんにちは";

// ... いろんなコードたち

echo "最後のごあいさつ";

// PHP 終了タグを書かずに、ここでスクリプトを終わります。

変更履歴
バージョン 説明
7.0.0 ASP タグ (<%, %>, <%=) や script タグ (<script language="php">) が PHP から削除されました。
5.4.0 short_open_tag の設定にかかわらず、<?= は常に使えるようになりました。

add a note add a note

User Contributed Notes 3 notes

up
0
anisgazig at gmail dot com
6 days ago
When php parse a file,it looks for opening and closing tag.php parser interpreting  the code between opening and closing tag and allows php to be embedded in all shorts of different documents.Outside of opening and closing tag is ignored by the php parser.

Now php recommended you to use only two tags.

1.Standard tag which is <?php echo "I'm Standard tag"; ?>
2.Short echo tag which is <?= "I'm Short echo tag"; ?>

Both are not affected by php ini configuration file directive.

Although php also allow short open tag which is discoursed but still available if php was configured with --enable-short-tags or  short_open_tag is enabled in php ini configuration file directive.

if you want to use php in combination with xml,you can disable short_open_tag in order to use <?xml ?> inline.
Otherwise, you can print it with PHP, for example: <?php echo '<?xml version="1.0"?>'; ?>

short_echo_tag also affected the short echo tag before 5.4.0
since 5.4.0,short echo tag is always available.

asp tag <% %> and <%= > are removed from php 7
script tag <script language="php"> <script/> also removed from php 7

It is preferable to omit the closing tag if a file only contain the php code.
<?php echo "a statement";
      echo
"another statement";

It prevent unwanted whitespace or new line being added after the closing tag.
--
happy-gazi|php-
up
-23
crazytonyi at gmail dot com
4 years ago
Regarding earlier note by @purkrt :

> I would like to stress out that the opening tag is "<?php[whitespace]", not just "<?php"

This is absolutely correct, but the wording may confuse some developers less familiar with the extent of the term "[whitespace]".

Whitespace, in this context, would be any character that generated vertical or horizontal space, including tabs ( \t ), newlines ( \n ), and carriage returns ( \r ), as well as a space character ( \s ). So reusing purkrt's example:

<?php/*blah*/ echo "a"?>

would not work, as mentioned, but :

<?php /*php followed by space*/ echo "a"?>

will work, as well as :

<?php
/*php followed by end-of-line*/ echo "a"?>

and :

<?php    /*php followed by tab*/ echo "a"?>

I just wanted to clarify this to prevent anyone from misreading purkrt's note to mean that a the opening tag --even when being on its own line--required a space ( \s ) character. The following would work but is not at all necessary or how the earlier comment should be interpreted :

<?php
/*php followed by a space and end-of-line*/ echo "a"?>

The end-of-line character is whitespace, so it is all that you would need.
up
-164
Mark Clements (kennel17.co.uk)
2 years ago
Closing PHP tags are recognised within single-line comments:

    <?php
   
// Code will end here ?> This is output as literal text.

    <?php
   
# Same with this method of commenting ?> This is output as literal text.

However they do not have an effect in C-style comments:

    <?php
   
/* Code will not end here ?> as closing tags are ignored inside C-style comments. */
   
?>
To Top