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のヘルパ。