PHPの基本文法
ここではPHPの基本文法をまとめています。
PHPプログラムの基本文法
PHPプログラムの宣言
PHPのプログラムは<?phpと?>の間に記述します。
<?php
echo "Hello World";
?>
>Hello World
PHPプログラムの命令文
命令文の最後にセミコロンを記述します。
<?php
echo "Hello World";
?>
>Hello World
PHPプログラムのコメント
PHPのコメントは一行コメントの場合#または//の後に、範囲コメントの場合は/* */の間に記述します。
<?php
# 一行コメント
// 一行コメント
/* 範囲コメント */
echo "Hello World";
?>
>Hello World
出力
echoの基礎
PHPで文字出力する命令はechoです。
PHPにおいて各条件ごとechoを利用して動的にHTML文を出力することは、主要な使用用途の一つです。
echo "Hello World"; // テキスト出力
>Hello World
echo "Hello" , " " , "World"; // カンマで区切って複数のパラメーターを連続出力可能
>Hello World
echo "Hello" . " " . "World"; // ドットは文字の連結。この方法でも連続出力可能
>Hello World
echo "<p>Hello World</p>"; // HTML文出力
>Hello World
文字列を囲むダブルクオーテーションとシングルクオーテーション
文字列を出力する場合にはダブルクオーテーションもしくはシングルクオーテーションで文字列を囲みます。
変数は、囲わなくても出力できます。囲う場合、ダブルクオーテーションでは変数が展開されますが、シングルクオーテーションでは変数展開されません。
数値は、囲わないと数値として扱われます。ダブルクオーテーションもしくはシングルクオーテーションで囲うと文字として扱われます。
echo 'Hello World'; // シングルクオーテーション囲み
>Hello World
$var="TEST";
echo $var; // 変数:囲いなし
>TEST
$var="TEST";
echo "変数展開確認 $var"; // 変数:ダブルクオーテーション囲み
>変数展開確認 TEST
$var="TEST";
echo '変数展開確認 $var'; //変数:シングルクオーテーション囲み
>変数展開確認 $var
$var="TEST";
echo "変数展開確認 {$var}"; //波括弧で変数を囲い明確化
>変数展開確認 TEST
echo 1+2+3; // 数値:囲いなし
>6
echo "1+2+3"; // 数値:ダブルクオーテーション囲み
>1+2+3
特殊文字のエスケープ対応
ダブルクオーテーションもしくはシングルクオーテーションで文字列を囲んだ場合、\を対象文字の前に書くことで特殊な文字を表示します。
この\をエスケープ文字と言います。
echo '\''; //シングルクオーテーション
>'
echo "\""; //ダブルクオーテーション
>"
echo "\\"; //エスケープ文字
>\
他に\n = 改行、\r = 復帰、\t = タブ、\xxx = 16進数のASCII文字 等があります。
ヒアドキュメントとNowdoc
毎行echoを書くのは手間なので、複数行を一括して出力する方法です。
ダブルクオーテーション扱いのヒアドキュメントと、シングルクオーテーション扱いのNowdocがあります。
//ダブルクオーテーション扱いのヒアドキュメント
echo <<< _EOF_
<p>1行目</p>
<p>2行目</p>
<p>3行目 $var</p>
_EOF_;
>1行目
>2行目
>3行目 TEST
//シングルクオーテーション扱いのNowdoc
echo <<< '_EOF_'
<p>1行目</p>
<p>2行目</p>
<p>3行目 $var</p>
_EOF_;
>1行目
>2行目
>3行目 $var
文字列操作
文字列操作関数
文字列の抽出、置換等文字列を操作する関数です。これらの関数は半角英数であれば問題なく利用できますが、日本語を含む場合、正しく動作しない場合があります。その場合UTF-8、SJISなど文字コードを考慮した別途ライブラリが必要になります。
//trim(文字列):左右のスペースを除去
$var=" abc ";
echo "<p>".trim($var)."</p>";
>abc
//strlen(文字列):バイト数
$var="abcde";
echo "<p>".strlen($var)."</p>";
>5
//strpos(文字列,検索文字):何番目に検索文字があるか
$var="abcde";
echo "<p>".strpos($var,"c")."</p>";
>2
//substr(文字列,開始位置,文字数):文字列を抽出
$var="abcde";
echo "<p>".substr($var,0,3)."</p>"; //文字数を指定
>abc
echo "<p>".substr($var,3,2)."</p>"; //開始位置、文字数を指定
>de
echo "<p>".substr($var,2)."</p>"; //開始位置を指定
>cde
//str_replace(検索文字,置換文字,文字列):文字を置換
$var="abcde";
echo "<p>".str_replace("a","b",$var)."</p>";
>bbcde
数値演算
学術的な計算は省き最低限の演算子、四捨五入、切り上げ等のみ取り上げています。
//基本演算子
$var=3+5; // +
echo "<p>".$var."<p>";
>8
$var=3-5; // -
echo "<p>".$var."<p>";
>-2
$var=3*5; // *
echo "<p>".$var."<p>";
>15
$var=3/5; // /
echo "<p>".$var."<p>";
>0.6
$var=3%5; // %
echo "<p>".$var."<p>";
>3
//インクリメント関連演算子
$var=1;$var++; // インクリメント
echo "<p>".$var."<p>";
>2
$var=1;$var--; // デクリメント
echo "<p>".$var."<p>";
>0
$var=1;++$var; // 先インクリメント
echo "<p>".$var."<p>";
>2
$var=1;--$var; // 先デクリメント
echo "<p>".$var."<p>";
>0
$var=1;$var+=5; // 値指定インクリメント
echo "<p>".$var."<p>";
>6
$var=1;$var/=2; // 値指定除算
echo "<p>".$var."<p>";
>0.5
//桁丸め
//round(数値,桁数):四捨五入
$var=1.53;
echo "<p>".round($var,0)."</p>";
>2
echo "<p>".round($var,1)."</p>";
>1.5
//floor(数値):整数化(小数点以下切り捨て)
$var=1.1;
echo "<p>".floor($var)."</p>";
>1
//ceil(数値):整数化(小数点以下切り上げ)
$var=1.1;
echo "<p>".ceil($var)."</p>";
>2