こんにちは、timshaw9です。

今日はWordPressの基盤にもなっている、Web開発に使われるプログラミング言語「PHP」の基礎文法とその書き方を、一覧にまとめました。

内容的には、何かしらプログラミング言語を学んだことのある方で、今回新しくPHPプログラミングを始めたい方向けの記事です。

さて、一応自分なりにPHPについてググってみたので、まずそれをまとめてから、本題の基本構文まとめに入りたいと思います。

PHPとは

概要

 PHPは、特にサーバーサイドで動的なWebページを作成するために使われる、サーバーサイド・スクリプト言語である。又、その名称は「PHP: Hypertext Preprocessor(=PHPはHTMLのプリプロセッサである)」を意味するとされている。

 文法は、影響を受けたCやJavaによく似ている。

引用元: Wikipedia - PHP(プログラミング言語)

動的なWebページとは、例えば「最新の記事が自動で更新されるサイト」です。HTMLだけでは、自動更新などのシステムを構築することができないため、PHPを用いてHTMLを動的に生成します。

イメージ的には、HTMLがWebページの基本的な骨組み作りを担当し(+その装飾をCSSが担当し)、それをWordPressで作ったサイトみたいに動的に制御してくれるのがPHPプログラミング。みたいなかんじだと自分では思っています。


 Hypertext とは、コンピューターを利用した文書作成・閲覧システムの1つで、複数のデータを相互に関連付け、結び付ける仕組み。又、そのハイパーテキストを作成する言語が「HTML(Hypertext Markup Language)」 である。

引用元: 大塚商会 -  IT用語辞典「ハイパーテキスト」

 Preprocessor とは、あるプログラムに対して、その前処理を行うプログラムのこと。C言語で例えると、コンパイル前に “#include”(外部ファイルの読み込み)などをするのが、この前処理(Preprocess)にあたります。

 因みに、コンパイルとは、プログラミング言語で記述されたソースコードを、コンピュータのCPUが理解できる「ネイティブコード(2進法の0と1のみで書かれた機械語)」に変換する工程のこと。

引用元: e-Words - プリプロセッサ

PHP と JavaScript の違い

PHPと同じく、Web開発で使われるスクリプト言語には、JavaScript というもう一つ有名な言語があります。

その2つの違いは

  • PHP はサーバーサイド言語
  • JavaScript はクライアントサイド言語

です。どちらも同じスクリプト言語ですが、動作する場所が異なります。


サーバーサイド言語というのは、その名の通り「Webサーバー」上で動作します。

※ Webサーバー: Webサイトのデータを格納しておく場所のこと。個人でブログサイトを立ち上げる際は、基本的にWebサーバーをレンタルします。

なので、先ほどいったように、「最新の記事を表示する」のようなサーバー内にあるデータを使った動的制御が、PHPを用いることで可能となります。

また、WordPressのように、記事を書いたら自動的にHTMLが生成されて、動的なサイトが完成する。みたいなアプリケーションも、PHPを用いて作れます。


クライアントサイド言語は、Webブラウザ上で動作する言語です。

※ Webブラウザ: WebサイトのHTMLデータなどを、Webサーバーから受け取り、それを私たちが普段インターネットで閲覧しているような形で表示させるアプリケーションのこと。 主なブラウザ: Google Chrome, Safari, Fire Fox など

※ 検索エンジン: まず、世界中のサーバーに存在するWebサイトをリンクを辿りながら巡り、それらをカテゴリー毎に順位付けしながら分類をする。そして、そのデータを基に、ユーザーが検索窓に打ち込んだキーワードに最も合うサイトを表示するシステム。 主な検索エンジン: Google, Yahoo, Bing など

複数の画像がスライドショーのように、1枚ずつ流れているようなサイトって結構ありますよね。

あのようなブラウザ上で行う処理は、JavaScriptで行います。

スクリプト言語とコンパイル言語の違い、低水準言語と高水準言語の違い

これは本記事の内容にあまり関係がないのですが、自分の学習のためにも一応まとめておきます。。


スクリプト言語とコンパイル言語の違いに関しては、Samurai Blogさんの「専門知識いらず!スクリプト言語とは?言語の種類やオススメを解説」という記事がとても分かりやすかったので、リンクを張っておきます。

簡単に言うと

  • スクリプト言語: コンパイルが不要で、コードも簡単で書きやすく見やすいものが多い。その反面、データ型の宣言を省略したりするので、大規模プロジェクトには向いていない。又、実行速度も遅い・使用用途が限られているものが多い。 主な言語: Python, Ruby, JavaScript, PHP など
  • コンパイル言語: 実行前に必ずコンパイルが必要で、コードもスクリプト言語に比べると少し複雑である。しかし、実行速度が速く、汎用性もあり、大規模プロジェクトに向いている。 主な言語: Java, C言語 など

みたいなかんじです。


低水準言語と高水準言語の違いに関しては、日経XTECHさんの「【5分で覚えるIT基礎の基礎】だれでも一度はアセンブラを学んでおこう!」という記事が有益だったので、リンクを張っておきます。

高水準言語とは、人間が話すような言葉で、コンピュータに指示をだすことができる言語で、現在使われている一般的なプログラミング言語がこれに当てはまります。

対して低水準言語とは、先ほど少し触れた「ネイティブコード(2進法の0と1のみで書かれた機械語)」のような、私たち人間には理解ができない言語のことです。しかし、機械語を人間にも理解できるようにした「アセンブリ言語」という言語も、低水準言語の枠に入ります。

さて、このアセンブリ言語というのは、機械語の中にある特定の処理を表す文字列を、その文字列毎に一つの単語化して、それをネイティブコードと1対1の並びで当てはめ、コンピュータに指示をだす言語です。

なので、コード自体の形式は変わりませんが、人間にも理解ができる表記になっています。

基本的に低水準言語は、高水準言語に比べてコードの長さが長くなり、指示の内容もこと細かく書くことになります。

PHPの基本構文一覧

基本のルール

  • C言語と同じで、各行毎にセミコロン(;)を打つ
  • ファイルの拡張子は(.php)
  • 単行コメントの書き方は(// コメント)と(# コメント)の2種類
  • 複数行コメントの書き方は(/* コメント */)
  • エスケープシーケンスは(\文字)※windowsの場合は¥記号で、その他の場合は(\)の半角

HTMLコードの中にPHPを入れ込む場合の書き方

処理内容が単行の場合、又は最終行の場合は、セミコロンを付ける義務なし

<?php 処理内容; ?>
<?php
   処理内容1;
   処理内容2;
?>

ディスプレイ出力

print("Hello World!");

変数の定義

$numSample = 0;
$strSample = "Apple";
  • 変数名の先頭に必ず($)を付ける
  • アルファベット・数字・アンダースコア(_)使用
  • 大文字小文字の区別
  • 変数名の1文字目には数字使用不可
  • 基本ローワーキャメルケース(lowerCamelCase)で表記する

文字型リテラル

  • ダブルクオート(”)の場合、文字列中の変数を変数値に置き換える
$doubleQuote = "timshaw9";

// This is timshaw9.
print("This is $doubleQuote.");

  • シングルクオート(’)の場合、文字列中の変数を変数値に置き換えない
$singleQuote = 'timshaw9';

// This is $singleQuote.
print("This is $singleQuote.");

if文

/*
 等しい: ==
 等しくない: !=
 未満: <
 超える: >
 以下: <=
 以上: >=
*/

if(条件式) {
   処理内容1;
   処理内容2;
} elseif(条件式) {
   処理内容1;
   処理内容2;
} else {
   処理内容1;
   処理内容2;
}

# 処理内容が短文の場合は波括弧省略可
if(条件式)
   処理内容;

switch文

switch(比較対象) {
   case 条件1:
      処理内容;
      break;
   case 条件2:
      処理内容;
      break;
   case 条件3:
      処理内容;
      break;
   default:
      処理内容;
      break;
}

while文

/*
 累乗: **
 余りの計算: %
 元の値を代入してから1を加算: 変数++
 1を加算してから元の値を代入: ++変数
 元の値を代入してから1を減算: 変数--
 1を減算してから元の値を代入: --変数
*/

while(条件式) {
   処理内容;
}

for文

for(ループ開始前の処理; 条件式; 各ループの末端で行う処理) {
   if(条件式)
      continue;
   処理内容;
}

配列(辞書)

# PHPでは、辞書の中に配列の概念が含まれています。

// 辞書
$dictSample[0] = "1";
$dictSample["1"] = 2;

$dictSample = [
   0 => "1",
   "1" => 2,
];

// 配列
$arraySample = [1, 2, 3];

最後に

追加で基本構文があれば、随時更新していきます。

この記事が少しでもPHP学習の助けになればと思います。。

Assalamu’alaikum!

コメントを残す