LaravelのブレードやPHPのコード中で、以下のようなはてなマークを両端に持つタグが使われていることがあります。
<?php ?>, <? ?>, <?= ?>
ここでは、これらのタグの意味についてまとめています。
<?php ?>, <? ?>, <?= ?>とは何か?
<?php ?>, <? ?>, <?= ?>はそれぞれhtmlファイルの中で、PHPを記述するためのタグです。(LaravelではなくPHPの表記です)
<?php ?>, <? ?>
<?php ?>, <? ?>はそれぞれ同じ処理をするもので、タグの中に記述したPHP処理を実行します。
echoではないので、処理を実行するのみで表示はしません。
なお、<? ?>はXMLの記述と被るため、基本的には非推奨です。
<?= ?>
<?= ?>は、タグの中に記述したPHPの処理結果を画面上に出力します。<?php echo ?>と同じです。
まとめ
一覧でまとめると以下のようになります。
| コード | 概要 | 省略しない記述 |
|---|---|---|
| <?php ?> | PHPを記述する | |
| <? ?> | XMLの記述と被るため基本的に使わない | <?php ?> |
| <?= ?> | 記述したPHPを文字列として出力 (echo)する | <?php echo ?> |
Laravelの表記との比較
LaravelはPHPの表記も使えますが、Laravel専用の表記もあります。
PHP処理の行う場合
PHP処理のみ行う場合、Laravelでは以下のように記述できます。
@php 処理 @endphp↑↓同じ
<?php 処理 ?>↑↓同じ
<? 処理 ?>
PHP処理の実行結果を出力する場合
PHP処理の実行結果を出力する場合、Laravelでは以下のように記述できます。
@php echo 処理 @endphp↑↓同じ
<?= 処理 ?>↑↓同じ
<?echo 処理 ?>
<?= ?>の使い方実例
<?php echo ?>の省略形。echoの後ろに変数を記述すると、その中身は出力されます。
実例1:変数を出力する
変数$variableを文字列として表示する場合は以下のようになります。
<?= $variable ?>実例2:cssをstyleタグの中に直接記述する
cssをlinkタグではなく、styleタグの中に直接記述することで、レンダリングブロックを回避しページの読み込み速度を上げる記述は以下のようになります。
<style type="text/css">
<?= file_get_contents(public_path('css/app.css')); ?>
</style>・file_get_contents(ファイルパス or URL)
指定したファイルやURLの内容を丸ごととってくる。PHPの関数。
・public_path(public配下のファイルパス)
public_path()はpublicディレクトリの完全なパスを返す。引数に配下のパスを入れると、publicディレクトリのパスに引数を追加した値を返す。Laravelのヘルパ。


