トップ 言語 PHP PHPプログラミング基礎(文法)

PHPプログラミング基礎(文法)―ダブルクォーテーションのエスケープ、for文、関数など。

書き方が分からないとPHPプログラミングが始められません。まずは文法を覚えることが必要になります。ここでは、ダブルクォーテーションのエスケープ、for文、関数などの文法をテーマにPHPプログラミングの基礎知識をまとめています。

目次

この記事の目次です。

1. PHPプログラムの書き方

2. PHPのデータ型と変数

3. PHPの文字列

4. PHPの配列

5. PHPのスーパーグローバル変数

6. PHPの演算子

7. PHPのif/else/elseif文

8. PHPのfor文

9. PHPのtry/catch

10. PHPのファイル分割

もっと知識を広げるための参考

更新履歴

1. PHPプログラムの書き方

コメントアウト、echo html、ヒアドキュメントなど、PHPプログラムの書き方についてまとめています。

詳細

2. PHPのデータ型と変数

プログラミングは突き詰めると、何らかのデータを使って何らかのアクションを行います。 つまりデータについての理解が重要です。構文のはじめとしてデータ型とリテラル、変数について見ていきます。

リテラルとは

リテラルとは、プログラム内でデータを表現するための記述方法のことをいいます。

PHPのリテラルの例

PHPのリテラルには次のようなものがあります。

PHPの 識別子

識別名とは、簡単にいうと「名前」です。 PHPでは、変数名や関数名などプログラムで使用するコードに識別子を使用します。

命名規則

識別子の最初の文字として使用できるのは、アルファベットの大文字と小文字、アンダースコア(_)、ASCIIコードで0x7Fから0xFFまでの文字のいずれかになります。 2番名以降は、これらに加えて0~9までの数字が使用できます。

PHPの変数

変数の定義と代入、初期化、型と型の種類、変数の参照など。PHPの変数について見ていきます。

PHPの変数の定義

PHPの変数の定義は、「$」+「変数名」の形式で記述します。 変数名として使える文字は他のプログラミング言語と同様に、半角英数字です。 なお、大文字と小文字は区別され、先頭に数字は使えません。

PHPの変数の代入

変数に値を設定することを代入といいます。 変数に値を設定するには以下のように「=」を使用します。

$変数名 = 値;

「=」のことを代入演算子といいます。

変数の定義と代入の例

以下はPHPの変数の定義の例です。

サンプルソース

PHPの変数が大文字と小文字が区別される例です。

<?php
$str = 'aaa';
$Str = 'Aaa';
$STR = 'AAA';
print "$str\n";
print "$Str\n";
print "$STR\n";
?>
実行結果

PHPがインストールされている環境でphpコマンドを使用して実行します。 ここでは、sample.phpというファイル名で保存したソースファイルを実行しています。

$ php sample.php
aaa
Aaa
AAA

PHPの変数の初期化

変数に初めて値を設定することを変数の初期化といいます。 初期化されていない変数を参照した場合は実行時にエラーになります。 変数が初期化されているかはisset関数を使用すると分かります。

変数が初期化されていない場合の挙動

変数が初期化されていない場合の挙動を確認してみます。

サンプルソース

何も値を設定ない変数をprintしてみます。

<?php
$hensuu;
print "$hensuu\n";
?>
実行結果

実行するとエラーになります。

$ php sample.php
PHP Notice:  Undefined variable: hensuu in /tmp/sample.php on line 3
変数が初期化されているか確認する例

今度は変数が初期化されているか確認する例です。

サンプルソース
<?php
$hensuu;
print isset($hensuu) . "\n";
$hensuu = 'aaa';
print isset($hensuu) . "\n";
?>
実行結果

初期化されている場合は、issetの値が1、初期化されていない場合は何も表示されないです。

$ php sample.php

1

PHPの変数の型

JavaやC言語などのプログラミング言語では、どのようなデータの種類を扱うか明示的に指定する必要があります。 このデータの種類のことを型といいます。PHPでは変数の型を明示的に宣言しません。宣言することは出来ません。 PHPでは、変数の型はその変数の使われ方によって変わってきます。

PHPの変数の型の確認方法

var_dump()という機能を使用すると変数の方が確認できます。

サンプルソース

たとえば、$hensuuという変数に文字列を代入した場合は$hensuuの型はスカラー型の文字列に整数を代入した場合はスカラー方の整数になります。

<?php
$hensuu = 'Hello World!!';
var_dump($hensuu);
$hensuu = 10;
var_dump($hensuu);
?>
実行結果

PHPがインストールされている環境でphpコマンドを使用して実行します。 ここでも、sample.phpというファイル名で保存したソースファイルを実行しています。

$ php sample.php
string(13) "Hello World!!"
int(10)

はじめは文字列なのでstring型、次は整数なのでint型になりました。

PHPの変数の型の種類

PHPの変数の型の種類には大きくスカラー型、複合型、特殊な型の3つあります。 それぞれ以下のような型があります。

スカラー型

スカラー型には以下のようなものがあります。

複合型

複合型には以下のようなものがあります。

特殊な型

特殊な型には以下のようなものがあります。

参照による代入が可能

PHP4以降では変数への値の代入時に参照による代入を行うことが出来ます。 「参照による代入」を行うには代入する変数の先頭に「&」を付けます。

サンプルソース

たとえば、$hensuuという変数の参照を$hensuu2という変数に代入して、後で$hensuuの値を変更して $hensuu2を表示すると後で変更した$hensuuの値が表示されます。

<?php
$hensuu = 'Hello World!!';
$hensuu2 = &$hensuu;
$hensuu = 'Hello PHP!!';
print "$hensuu2\n";
?>
実行結果

PHPがインストールされている環境でphpコマンドを使用して実行します。 ここでも、sample.phpというファイル名で保存したソースファイルを実行しています。

$ php sample.php
Hello PHP!!

3. PHPの文字列

PHPには標準で文字列を作成したり操作する機能が組み込まれています。 文字列は、任意の長さの文字を連結したものです。

PHPで文字列を扱う場合は文字列をシングルクォーテーション(')とダブルクォーテーション(")で囲みます。 変数に文字列を代入する場合は文字列をシングルクォーテーション(')とダブルクォーテーション(")の両方で囲んで代入することができます。

また、PHPでは、ダブルクォーテーションで文字列を囲んだ場合はその中で変数やエスケープシーケンスが利用でき、 シングルクォーテーションで囲んだ場合は変数やエスケープシーケンスはそのままの文字として扱われます。

PHPにおけるシングルクォーテーション(')とダブルクォーテーション(")の違い

シングルクォーテーション(')とダブルクォーテーション(")にはもちろん違いがあり、 以下の違いをおさえておくと、使い分けられてこれらが便利に感じられます。

PHPのダブルクォーテーション(")

ダブルクォーテーションで囲んだ文字列中では、変数が展開されます。 ダブルクォーテーションで囲むとその中で変数やエスケープシーケンスが利用できます。

PHPのシングルクォーテーション(')

シングルクォーテーションで囲んだ場合は、ダブルコーテーションで囲んだ場合と違い、 文字列中で変数やエスケープシーケンスが利用できません。

ダブルクォーテーション内で利用できるエスケープシーケンス

PHPでは、ダブルクォーテーションで囲んだ場合、以下に示すようなエスケープシーケンスが利用できます。

PHPのダブルクォーテーション内で利用できるエスケープシーケンス
エスケープシーケンスエスケープシーケンスが表す文字
\"ダブルクォーテーション
\n改行
\r復改
\tタブ
\\バックスラッシュ
\$ドル記号
\{左波括弧
\}右波括弧
\[左角括弧
\]右角括弧
\0~\777まで8進数形式で表したASCII文字
\x0~\xFFまで16進数形式で表したASCII文字

PHPのシングルクォーテーション(')とダブルクォーテーション(")の挙動

以下ではPHPのシングルクォーテーション(')とダブルクォーテーション(")の挙動を見るサンプルプログラムを見ていきます。

サンプルソース

シングルクォーテーション(')とダブルクォーテーション(")の両方に変数とエスケープシーケンスを記述して、動作を見るサンプルソースです。

<?php
$hensuu = "World";
$str1 = "Hello $hensuu!\n";
$str2 = 'Hello $hensuu!\n';
print $str1;
print $str2;
print "\n";
?>

実行結果

PHPがインストールされている環境でphpコマンドを使用して実行します。 ここでは、sample.phpというファイル名で保存したソースファイルを実行しています。

$ php sample.php
Hello World!
Hello $hensuu!\n

4. PHPの配列

PHPの配列はarray関数で取得できます。 またcount関数で配列の要素数が調べられます。

<?php
$a = array('a','b','c');
echo "$a[0]\n";
echo "$a[1]\n";
echo "$a[2]\n";
echo count($a) . "\n";
?>

このコードを実行すると以下のように表示されます。

php sample.php
a
b
c
3

5. PHPのスーパーグローバル変数

環境変数やサーバー情報の取得方法など。PHPのスーパーグローバル変数について見ていきます。

グローバル変数

PHPには、関数内などで変数に「global」を付けて宣言すると、その変数は関数の内外を問わず使用できます。

このように「global」を付けて宣言された変数をグローバル変数といいます。

スーパーグローバル変数

PHPでは、PHPの実行環境側で自動的に定義され、プログラムのどこからでも汎用的に使うことが出来る変数があります。 このような定義済みの変数をスーパーグローバル変数といいます。

スーパーグローバル変数の使用方法ですが、以下のようにパラメータの種類を添え字に指定して値を取得します。

$スーパーグローバル変数['パラメータ']

以下にスーパグローバル変数の種類をまとめています。

スパーグローバル変数の種類
変数名保存情報説明
$GLOBALS グローバル変数の情報 スクリプトの中で利用可能なすべての変数に対してのリファレンスが保存されます。 利用可能なすべてのグローバル変数の情報が取得できます。
$_SERVER サーバ情報 Webサーバーに関する情報が保存されます。 Webサーバーや実行中のスクリプトに関する情報が取得できます。
$_GET GETパラメータ情報 GETリクエストで渡されたパラメータの内容が保存されます。 HTTPプロトコルのGETメソッドにより、フォームからスクリプトに送信される値が取得できます。
$_POST POSTパラメータ情報 POSTリクエストで渡されたパラメータの内容が保存されます。 HTTPプロトコルのPOSTメソッドにより、フォームからスクリプトに送信される値が取得できます。
$_COOKIE クッキー情報 リクエストで渡されたクッキーの値が保存されます。 クライアントからCOOKIEで渡された情報が保存されます。 HTTP Cookieにより、サーバサイドのスクリプトに送信されるクッキー情報が取得できます。
$_FILES ファイル情報 POST送信でアップロードされたファイルの情報が保存されます。 フォームのHTTP POSTファイルアップロードにより、サーバサイドのスクリプトに送信される情報が取得できます。
$_ENV 環境変数の情報 環境変数の値が保存されます。 環境変数の値が取得できます。 環境変数の名前が配列のキーとなります。
$_REQUEST HTTPリクエスト情報 HTTPのリクエスト情報が保存されます。 $_GET、$_POST、$_COOKIE、$_FILESの値が1つの配列に保存されます。 $_GET、$_POST、$_COOKIE、$_FILESの値が取得できます。
$_SESSION セッション情報 スクリプトのセッション変数に関する情報が保存されます。 セッションに現在保存されている値が取得できます。

環境変数

環境変数は、OSが持っている、OSの環境に関する情報が入った変数です。 PHPでは、スーパーグローバル変数$_ENVを使って参照できます。

サーバー情報

$_SERVERには、Webサーバーやブラウザの情報、Webサーバーが動いているコンピュータのシステムに関する情報が保存されます。 Webサーバーについての有用な情報が数多く保存されています。

$_SERVERで参照できる情報には、主に次のようなものがあります。 $_SERVERの連想配列の添字に($_SERVER['HTTP_REFERER']のように)パラメータ名を文字列で指定します。

$_SERVERで参照できる主なパラメータ
パラメータ保存情報説明
PHP_SELF スクリプト名 現在のスクリプト名をドキュメントルートからの相対パスで表したスクリプト名です。
SERVER_SOFTWARE サーバー識別名 サーバーを識別する文字列です。Apache XXXX(Unix)PHP/XXというようなWebサーバーとPHPのバージョン文字列となります。
SERVER_NAME ホスト名 URLに含まれるホスト名、DNSエイリアス、またはIPアドレスです。
GATEWAY_INTERFACE CGIバージョン CGI標準のどのバージョンにしたがっているかの情報です。
SERVER_PROTOCOL リクエストプロトコル名 リクエスト時のプロトコルの名前とリビジョン情報です。(例:HTTP/1.1)
SERVER_PORT ポート番号 リクエストの送信先のサーバーのポート番号です。
REQUEST_METHOD メソッド 直前の通信におけるデータの受け渡し方法です。 クライアントがドキュメントを取得するために使用したメソッドです。
PATH_INFO URLのリソースパス クライアントが指定した追加のパス要素です。(例 /aaa/bbb)
PATH_TRANSLATED ファイル名 サーバーがPATH_INFOの値をファイル名に変換したものです。(例:/var/www/html/aaa/bbb)
SCRIPT_NAME URLのパス 現在のページへのURLパスです。
QUERY_STRING URLのパラメータ URLの?以降の内容です。
REMOTE_HOST クライアントの端末のホスト名 このページをリクエストしたクライアントマシンのホスト名です。 DNSが存在しない場合は空白になります。
REMOTE_ADDR クライアントのIPアドレス クライアントのIPアドレスです。
AUTH_TYPE 認証方式 パスワードで保護されている場合のそのページの保護にしようした認証方式です。
REMOTE_USER ユーザ名 パスワードで保護されている場合のユーザ名です。
REMOTE_INDENT クライアントホストから取得したユーザ名 サーバー側でidentdのチェックを行うように設定されている場合のリクエスト元のホストから取得したユーザー名です。 簡単に偽装できるので認証に使用してはだめです。
CONTENT_TYPE コンテンツタイプ PUTリクエストやPOSTリクエストの際の付属情報のコンテンツタイプです。
CONTENT_LENGTH コンテンツの長さ PUTリクエストやPOSTリクエストの際の付属情報の長さです。
HTTP_USER_AGENT ユーザーエージェント 直前の通信におけるクライアントのブラウザやOSに関する情報です。
HTTP_REFERER 前のページ 直前の通信における呼び出しもとのURLです。
HTTP_HOST ホストヘッダ情報 ホストヘッダの情報です。
SERVER_ADDR サーバーのIPアドレス サーバーのIPアドレスです。
DOCUMENT_ROOT ドキュメントルート Webサーバーのドキュメントルートのパスです。
SERVER_ADMIN サーバ管理者 Webサーバー管理者のメールアドレスです。
COMPUTERNAME コンピュータ名 コンピュータ名です。

なお、上記のパラメータは使用しているWebサーバによっては保持されるものと保持されないものがあります。

6. PHPの演算子

PHPの演算子について見ていきます。

演算子とは

演算子は、「a+1」の「+」の部分のことで、変数と値の演算に使われます。

PHPの演算子の概要

PHPの演算子は以下のグループに分類することができます。

PHPの算術演算子

PHPの算術演算子は、数値に対して、足し算や引き算、掛け算、割り算などを行う演算子です。

演算子名前結果
+加算(足し算)$x + $y$xと$yの合計
-減算(引き算)$x - $y$xと$yの差
*乗算(掛け算)$x * $y$xと$yを掛け合わせた値
/除算(割り算)$x / $y$xを$yで割った値
%余り$x % $y$xを$yで割った際の余り
**べき乗$x ** $y$xを$y乗した値

PHPの代入演算子

PHPの代入演算子は、数値が格納された変数や値の演算と代入をまとめて行う演算子です。

演算子同様の処理になる式捕捉
$x = $y$x = $y右の変数の値を左の変数に設定(代入)
$x += $y$x = $x + $y加算(足し算)
$x -= $y$x = $x - $y減算(引き算)
$x *= $y$x = $x * $y乗算(掛け算)
$x /= $y$x = $x / $y除算(割り算)
$x %= $y$x = $x % $y余り

PHPの比較演算子

PHPの比較演算子は、2つの値を比較する際に使用する演算子です。

演算子名前使用例演算結果
==等しい$x == $y型の相互変換をした後で$xと$yが等しければtrue
===等しい$x === $y$xと$yが型も含め等しければtrue
!=等しくない$x != $y型の相互変換をした後で$xと$yが等しくなければtrue
<>等しくない$x <> $y型の相互変換をした後で$xと$yが等しくなければtrue
!==等しくない$x !== $y$xと$yが型も含め等しくなければtrue
>より大きい$x > $y$xが$yより大きければtrue
<より小さい$x < $y$xが$yより小さければtrue
>=以上$x >= $y$xが$y以上の場合true
<=以下$x <= $y$xが$y以下の場合true
<=>2項演算子$x <=> $y$xが$yより小さいときに負の値、 $yと等しいときに0、 $yより大きいときに正の値。PHP7以降で使用可能。

PHPのインクリメント/デクリメント演算子

PHPのインクリメント演算子は、変数の値にプラス1する演算子で、デクリメント演算子はマイナス1する演算子です。 前置(++$x、--$y)は加算してから値を返し、後置($x++、$y--)は値を返してから加算します。

PHPの論理演算子

PHPの論理演算子は、論理演算を行う演算子です。 and および「&&」が「かつ(論理積)」、or および「||」が「または(論理和)」、「!」が「でない(否定)」、xor が排他的論理和です。

PHPの文字列演算子

PHPの文字列演算子は、文字同士の演算を行う演算子です。 「.」を使用して文字列の結合が行えます。 また、「.=」とすると結合して代入が行えます。

7. PHPのif/else/elseif文

条件文は、条件に応じて異なる処理を行う文です。 条件分の1つにPHPではif/else/elseif文があります。

if文

if文は、1つの条件がtrueの場合コードを実行するという文です。

if文の文法

if文の文法は以下です。

if (条件) {
    条件がtrueの場合の処理
}

if else文

if else文は、1つの条件がtrueの場合とfalseの場合に実行するコードを分けることができます。

if else文の文法

if else文の文法は以下です。

if (条件) {
    条件がtrueの場合の処理
} else {
    条件がfalseの場合の処理
}

if elseif else文

if elseif else文は、複数の条件でtrueの場合にそれぞれで実行するコードと全てfalseの場合に実行するコードを分けることができます。

if elseif else文の文法

if elseif else文の文法は以下です。

if (条件1) {
    条件1がtrueの場合の処理
} elseif (条件2) {
    条件2がtrueの場合の処理
} else {
    全ての条件がfalseの場合の処理
}

8. PHPのfor文

PHPで繰り返し処理を行う方法の1つにfor文があります。 for文は繰り返し回数指定&条件に一致する場合に同じ処理を行いたいときにfor文を使います。

for文の構文

for文の構文です。

for (①カウンタの初期設定;②繰り返し条件;③繰り返し毎のカウンタの設定) {
    繰り返し処理
}

①カウンタの初期設定 …繰り返し条件で使用するカウンタ用の変数の初期値を設定します。

②繰り返し条件 …繰り返しの終了条件を条件式で記述します。

③繰り返し毎のカウンタの設定 …繰り返し毎にカウンタに値を設定する式

for文の例

<?php
for ($i = 0; $i <= 10; $i++) {
	echo $i . "回";
}
?>

foreach文

foreach文は、配列を反復処理出来る構文です。

foreach文の例

配列の要素を反復で取り出せます。 $valueのみと、$keyと$valueの指定があり、前者は値だけ、後者はキーと値が利用できます。

<?php
$arr = array('a','b','c','d');
foreach($arr as $value) {
    echo "$value \n";
}

foreach($arr as $key => $value) {
    echo "$key = $value \n";
}
?>
実装結果

例の実行結果です。

php sample.php
a
b
c
d
0 = a
1 = b
2 = c
3 = d

9. PHPのtry/catch

PHPにもtry/catchの構文があります。 try/chatchは例外を捕捉してエラー処理が記述できる構文です。 例外処理を使うことで、エラーが発生して落ちてしまう場合や問題が発生した場合の処理を自分でコントロールできるようになります。

try {
    //通常処理

} catch ( Exception $ex ) {
    //エラー処理
}

10. PHPのファイル分割

PHPのファイル分割に関連した内容をまとめていきます。

include_once文

include_once文は、スクリプトの実行時に指定したファイルを読み込みます。 ファイルは1度読み込んだものは再度読み込まれません。

set_include_path文

include_once文は、スクリプトの実行時に読み込むファイルの 基準とするパスを設定することができます。

もっと知識を広げるための参考

更新履歴

更新履歴になります。

戻る

スポンサーリンク

サイト内のページ

言語
C・C++ /HTML /Java /JavaScript /PHP /シェルスクリプト

開発環境
Ant /Eclipse /gcc /gdb /Git /g++ /JDK /JUnit /ZAP

技術・仕様
Ajax /CORBA /Java EE(旧称J2EE) /JNI

ライブラリ/Framework/CMS
bootstrap /jQuery /Lucene /MyBatis /Spring /Struts /Seasar2 /WordPress

ITインフラ OSとミドルウェア
Linux /Windows /シェル
Apache/Tomcat /MySQL /Redis /Solr /vsftpd

ITインフラ PC 製品
ZOTAC

ITインフラ サーバー
Web公開サーバー構築

ITインフラ ネットワーク
プログラミング /機器 /構築

ITインフラ セキュリティ
公開サーバーのセキュリティ

SI
ホームページの作り方 /小さな会社のISMS

その他
IT用語 /ITスキル体系 /トレンド履歴

スポンサーリンク

関連サイト内検索ツール

zealseedsおよび関連サイト内のページが検索できます。

IPアドレス確認ツール

あなたのグローバルIPアドレスは以下です。

34.231.21.123

HTMLの表示色確認ツール

パスワード生成ツール

文字数のプルダウンを選択して、取得ボタンを押すと「a~z、A~Z、0~9」の文字を ランダムに組み合わせた文字列が表示されます。

ここに生成されます。

スポンサーリンク