Caution

お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。

  1. トップページ
  2. PHP入門編 - PHP入門編総まとめ

PHP入門編総まとめ

みなさまどうもこんにちわ。

というわけでPHP入門編の総まとめとなります。忘れてしまった項目などあったらこちらで再チェックしちゃってください。

PHPブロック

PHPはHTMLに組み込みすることに特化しているため、PHPの処理部分は『PHPブロック』で囲む必要がある。開始タグは『<?php』、終了タグは『?>』となる。エラーの原因になるため、『PHPブロック』で終了するファイルは『PHPブロックの終了タグ』を書くべきではないことにも注意すること。

<?php
    echo 'Hello world';
?>
<?php
    // 『PHPブロック』で終了するファイルは終了タグは省略するのが無難です。

詳細はこちら

文字列

PHPでは『'』や『"』で囲むことで文字列となる。文字をそのまま扱いたい場合は『'』で囲み、エスケープ文字や変数展開をさせたい場合は『"』で囲む。変数展開をさせる場合は変数の前後に半角スペースを置くか、『{}』でくくる必要があるので注意すること。

<?php
    echo 'Hello world';
<?php
    $txt = "初音ミク";
    echo "ぼくは $txt が好きです。";
    echo "ぼくは{$txt}が好きです。";

詳細はこちら

エスケープシーケンス

『\』を使用することで特殊文字の持っている機能をエスケープして通常文字として扱うことができる。

<?php
    echo "<p class=\"hoge\">ここはhogeってクラス名がついたp要素だよ!</p>";

改行などはエスケープ文字を使用することで表現できる。エスケープ文字の一覧は以下を参考にすると良い。

http://php.net/manual/ja/regexp.reference.escape.php

詳細はこちら

文字の出力と『var_dump()』

文字を出力したい場合は『echo』、または『print』が使用される。『echo』の方が若干処理が早いので特に理由がない場合は『echo』を使用すると良い。細かい内容を出力したい場合や配列などの中身を確認したい場合は『var_dump()』を使用すると良い。

<?php
$txts = ['Miku', 'IA'];
var_dump($txts);

echo 'Hello world';

詳細はこちら

PHPでのコメントアウト

一行コメントを記述したい場合は『//』または『#』を文頭に記述する。一行コメントの終わりと判定される部分は『改行』または『PHPブロックの終了タグ』となるので注意。複数行コメントの場合は『/*』と『*/』で囲めばOK。複数行コメントの場合は『一行コメント』とは違い、『PHPブロック』の終了タグでもコメントが終了しないので気をつけること。

<?php
// これは『コメント』です。
# これも『コメント』です。
// ここは『コメント』です。?>ここはPHPブロックの外なので『コメント』じゃないです。普通に出力されちゃいます。

<?php
/*
ここはコメントです。
複数行記述できます。
*/

/*
PHPブロックの終了タグでもコメントが終了しません。
?>ああ
*/

詳細はこちら

文とセミコロンとインデント

PHPではひとつの小さな処理のまとまりを文と呼ぶ。文の終わりには『;』を記述すること。PHPでの改行、空白スペースやタブ文字は基本的に無視されるので自由にインデントを行うことができる。コーディングルールが存在するならばそれにしたがってインデントをすると良い。

詳細はこちら

エラー時の処理とphp.ini

PHPの設定ファイルである『php.ini』で、『error_reporting = E_ALL』、『display_errors = On』と記述することでPHPがエラー内容を出力してくれるようになる。『php.ini』の場所は『phpinfo()』を実行し、その中の『Loaded Configuration File』を確認すれば良い。

詳細はこちら

変数

PHPでの変数は頭に『$』をつける。変数への代入は『=』を使用し、右辺から左辺への代入となるので注意すること。PHPでは『変数宣言』や『型』の定義は必要ない。変数名のネーミングルールについては以下。

  • 1文字以上の英数字、または『_』(アンダーバー、またはアンダースコア)』を使用する。
  • 先頭の文字は数字以外の文字である必要がある。
  • 大文字小文字は区別される。
  • 『予約語』の使用は不可。
<?php
$test1 = 1;
$test2 = 2;

echo $test1 + $test2;

詳細はこちら

include()とrequire_once()

ファイルをインクルードさせたい場合は『include()』、または『require_once()』を使用する。通常のファイルならば『include()』、関数定義などの重要なファイルは『require_once()』を使用するのが一般的。

<?
include('./header.php');
require_once('./functions.php');

詳細はこちら

基本的な演算子と文字連結

PHPでの加算は『+』、減算は『-』、乗算は『*』、除算は『/』、そして剰余(割り算した時の余り)は『%』を使用する。インクリメントは『++』、デクリメントは『--』を使用し、基本的に前置パターンで記述すると良い。文字連結は『.』、複合演算子として『+=』、『-=』、『*=』、『/=』、『%=』、『.=』が使用可能。

<?php
echo 1 + 2; // 『1 + 2』の演算結果を出力します。
echo 3 - 2; // 『3 - 2』の演算結果を出力します。
echo 3 * 2; // 『3 × 2』の演算結果を出力します。
echo 6 / 2; // 『6 ÷ 2』の演算結果を出力します。
echo 6 % 5; // 『6 ÷ 5』の余りを出力します。

$test = 1 + 2; // 『1 + 2』の演算結果、数値『3』を変数『test』に代入します。

$x = 0;
++$x; // これは『$x = $x + 1』と記述したことと同じです。

$y = 1;
--$y; // これは『$y = $y - 1』と記述したことと同じです。

$num1 = 10; // 変数『num1』に数値『10』を代入します。
$num1 += 2; // 『$num = $num + 2;』と記述していることと同じです。
echo $num1; // 数値『12』が出力されます。

$num2 = 10; // 変数『num2』に数値『10』を代入します。
$num2 -= 2; // 『$num2 = $num2 - 2;』と記述していることと同じです。
echo $num2; // 数値『8』が出力されます。

$num3 = 10; // 変数『num3』に数値『10』を代入します。
$num3 *= 2; // 『$num3 = $num3 * 2;』と記述していることと同じです。
echo $num3; // 数値『20』が出力されます。

$num4 = 10; // 変数『num4』に数値『10』を代入します。
$num4 /= 2; // 『$num4 = $num4 / 2;』と記述していることと同じです。
echo $num4; // 数値『5』が出力されます。

$num5 = 10; // 変数『num5』に数値『10』を代入します。
$num5 %= 3; // 『$num5 = $num5 % 3;』と記述していることと同じです。
echo $num5; // 数値『1』が出力されます。

$txt = 'Hello'; // 変数『txt』に文字列『Hello』を代入します。
$txt .= ' world'; // 『$txt = $txt . ' world';』と記述していることと同じです。
echo $txt; // 文字列『Hello world』が出力されます。

詳細はこちら

配列(添字配列)

PHPでは『array()』を使って配列を定義できる。PHP5.4からは『[]』でも定義可能。配列の中身を丸ごと確認したい場合は『var_dump()』を使用すること。

<?php
$arr = array('miku', 'IA');

var_dump($arr);
echo $arr[0];

詳細はこちら

配列の追加方法と注意点

配列に要素を追加したい場合は『[]』を使用する。まとめて追加したい場合は『array_push()』を使用すると良い。PHPでは添字配列も連想配列も同じ扱いのため、連番をかっ飛ばしたりすることも可能。さらにインデックスを文字列で定義しても数値として扱うことができるので注意。配列数(要素数)を取得したい場合は『count()』を使用すれば良い。

$arr = array('miku', 'IA');
$arr[] = 'rin';

var_dump($arr);
<?php
$arr = array('miku', 'IA');
array_push($arr, 'rin', 'ren');

var_dump($arr);
<?php
$arr = ['miku']; // 配列『arr』を生成しつつ『0』番目の要素に文字列『miku』を代入します。
$arr['0'] = 'IA'; // 配列『arr』の文字列『0』番目の要素に文字列『IA』を代入します。

echo $arr[0]; // これは『IA』となります。
<?php
$vocaloids = [];
$vocaloids[] = '初音ミク';
$vocaloids[] = 'IA';
$vocaloids[] = '鏡音リン';

echo count($vocaloids); // 配列『vocaloids』の要素数を『count()』で取得して『echo』で出力します。

詳細はこちら

関数と引数

PHPでの関数定義と引数の記述は以下となる。

function 関数名(引数1, 引数2, 引数3){
    // ここに処理
}

定義した関数を実行する記述は以下。

関数名(引数);
<?php
// $widthが底辺で$heightが高さです。
function area_of_triangle($width, $height){
    $area = ($width * $height) / 2;

    echo '底辺の長さが『' . $width . '』、高さが『' . $height . '』の三角形の面積は『' . $area . '』です';
}
 
area_of_triangle(10, 5);

詳細はこちら

連想配列

連想配列は連番ではなく独自の名前で管理する配列のこと。PHPの内部的には添字配列も連想配列も扱いに差がない。PHPでの配列全般では生成したプロパティ(要素)の順番が必ず担保される。

<?php
$vocaloids = [];
$vocaloids['miku'] = '080-xxxx-1234';
$vocaloids['IA'] = '090-yyyy-1234';
$vocaloids['rin']  = '080-zzzz-1234';

詳細はこちら

ダブルアロー演算子と多次元配列

ダブルアロー演算子『=>』を使用すると『array()』で連想配列も生成できる。PHP5.4以降は『[]』でも定義可能。PHPでは多次元配列の生成が可能で、多次元配列は記述が複雑になりがちなため、『,』などの記述ミスに注意。

<?php
$vocaloids = array('miku' => '080-xxxx-1234');
// 『$vocaloids['miku'] = '080-xxxx-1234'』と記述していることと同じです。
<?php
$vocaloids = ['miku' => '080-xxxx-1234']; // PHP5.4以降ならば『[]』も使えます。
<?php
$MGS5TPP = array(
    'Title' => 'METAL GEAR SOLID V: The Phantom Pain',
    'Developer(s)' => 'Kojima Productions',
    'Producer' => 'Hideo Kojima',
    'Main Characters' => [
        'BIG BOSS',
        'Kazuhira Mirrer',
        'Revolver Ocelot',
        'Quiet',
        'Skull Face'
    ]
);

$MGS5TPP['Main Characters'][0] = 'Naked Snake'; // 文字列『BIG BOSS』を文字列『Nekid Snake』に書き換えます。

echo $MGS5TPP['Main Characters'][0]; // 文字列『Nekid Snake』が出力されます。

詳細はこちら

真偽値(論理値)と比較演算子

真偽値は『true』(真)か『false』(偽)かを表す値。比較演算子でオペランドの比較処理が可能。よく使用される比較演算子は以下。

第1オペランド第2オペランド比較方式
数値数値数値による比較
文字列の数値文字列の数値数値による比較
文字列の数値数値数値による比較
通常の文字列数値数値による比較
文字列の数値通常の文字列辞書順による比較
通常の文字列通常の文字列辞書順による比較

詳細はこちら

if文

if文は条件分岐を行うことができる構文。『else文』を記述する場合は必ず最後に記述しなくてはならないので注意。

<?php
if(false){
    var_dump('実行されました!');
}
else if(false){
    var_dump('実行されました!その2');
}
else{
    var_dump('実行されました!その3');
}

PHPでの『true』扱いされる値と『false』扱いされる値は以下を参照。

  • 真偽値『false』
  • 数値『0』
  • 浮動小数点数値『0.0』
  • 空の文字列(''とか"")および文字列の『0』
  • 空の配列(連想配列)
  • NULL

詳細はこちら

論理演算子

『&&』は『論理積演算子』(ろんりせきえんざんし)と呼ばれ、『両オペランド(両辺)がtrue』だったときにその式全体の評価が『true』となる。『||』は『論理和演算子』(ろんりわえんざんし)と呼ばれ、『両オペランド(両辺)の片一方がtrue』だったときにその式全体の評価が『true』となる。『xor』は『排他的論理和演算子』(はいたてきろんりわえんざんし)と呼ばれ、どちらか一方が『true』になっていた場合のみその式全体の評価が『true』となる。『!』は『論理否定演算子』(ろんりひていえんざんし)と呼ばれ、オペランドの値を『真偽値』として評価したあとその値を反転させる。

<?php
if(true && true){
    var_dump('実行されました!');
}
<?php
if(true || false){
    var_dump('実行されました!');
}
<?php
if(true xor false){
    var_dump('実行されました!');
}
<?php
if(!false){
    var_dump('実行されました!');
}

詳細はこちら

switch文

『switch文』では同時に多数の分岐処理ができる。『break文』を入れない場合は続く処理が継続してしまうので注意。その他の注意点としてPHPでの『switch文』では厳密な比較がされないため、一般的にif文で構築することが多い。

<?php
$num = 1;

switch($num){
    case 1:
        var_dump('1です!');
        break;
    case 2:
        var_dump('2です!');
        break;
    case 3:
        var_dump('3です!');
        break;
    default:
        var_dump('defaultです!');
        break;
}

『switch文』での厳密な比較を行いたい場合は以下のような形となる。

<?php
$num = 1;
 
switch(true){
    case $num === 0:
        var_dump('0です!');
        break;
    case $num === 1:
        var_dump('1です!');
        break;
    case $num === 2:
        var_dump('2です!');
        break;
    default:
        var_dump('defaultです!');
        break;
}

詳細はこちら

for文

for文は繰り返し処理を行うことができ、主に添字配列と組み合わせて使用される。『更新式』と『条件式』の部分はなるべく処理をさせない方向で構築すると良い。

<?php
$vocaloids = [];
$vocaloids[] = '初音ミク';
$vocaloids[] = 'IA';
$vocaloids[] = '鏡音リン';

$cnt = count($vocaloids) - 1; // 『count()』で取得した値を減算して変数『cnt』で受け取ります。
for($i = 0; $i <= $cnt; ++$i){ // 更新式を『$ <= $cnt』とすることで処理を軽減できます。
    echo $vocaloids[$i] . "\n";
}

詳細はこちら

do/while文

『while文』はfor文と同じく繰り返し処理を行える構文。for文よりも簡単にループ処理を構築できる反面、簡単に終わらないループ処理が作れてしまうので気をつけること。

<?php
$num = 0;
 
while($num < 10){
    var_dump($num);
    ++$num;
}

最初の一回だけ必ず実行させるループ処理を構築したい場合は『do/while文』を使用すると良い。

<?php
$num = 0;
 
do{
    var_dump($num);
    ++$num;
}while(false);

詳細はこちら

foreach文

foreach文は配列に合わせたループ処理を行う構文。配列の値のみを使用する場合は以下のような記述となる。

<?php
$vocaloids[] = '初音ミク';
$vocaloids[] = 'IA';
$vocaloids[] = '鏡音リン';

foreach($vocaloids as $val){
    echo $val;
}

配列のキー(インデックス)と値を使用したい場合は以下。

<?php
$vocaloids[] = '初音ミク';
$vocaloids[] = 'IA';
$vocaloids[] = '鏡音リン';

foreach($vocaloids as $key => $val){
    echo '配列『vocaloids』のキー『' . $key . '』は『' . $val . "』です。\n";
}

詳細はこちら

以上でPHP入門編を終了したいと思います。

このような駄文をここまでお読み頂き誠にありがとうございました。当サイトの内容があなた様の知力となっていれば幸いです。ではではこの辺で。またどこかでお会いしましょう。

この記事は桜舞が執筆致しました。

著者が愛する小型哺乳類

桜舞 春人 Sakurama Haruto

ISDN時代から様々なコンテンツを制作しているちょっと髪の毛が心配な東京在住のプログラマー。生粋のロングスリーパーで、10時間以上睡眠を取らないと基本的に体調が悪い。好きなだけ寝れる生活を送るのが夢。ゲームとスポーツと音楽が大好き。誰か髪の毛を分けて下さい。

記事の間違いや著作権の侵害等ございましたらお手数ですがまでご連絡頂ければ幸いです。