プログラミング言語
PHPとは?概要からおすすめフレームワーク・バージョンアップまで解説
2023.4.10
PHPは、人気のCMS「WordPress」をはじめ、世界中のウェブサイトで広く利用されているプログラミング言語です。
Web技術調査サービス「W3Techs」の公表によると、PHPはサーバサイド言語として最もポピュラーであり、その利用率は77.6%にものぼるとされています(2022年11月1日時点)。
このように世界的に需要の高いPHPは、仕様や構文が簡単なため他のプログラミング言語より学習コストが低く、初心者にも習得しやすいのが特徴です。フリーランス案件やリモート案件も数多くあるため、PHPを習得することでキャリアの幅が広がります。
この記事では、PHPの概要からおすすめフレームワーク、バージョンアップまで幅広く解説します。
目次
PHPとは
まず初めに、PHPがどのようなプログラミング言語か、将来性やできることについてご紹介します。
PHPの特徴
PHPは、日本だけでなく世界中のWebサイトで広く利用されているサーバサイド言語の1つです。HTMLやCSSと合わせて利用することで、動的なWebサイトの生成が可能になります。プログラミング言語の種類としては、「動的型付け言語」「オブジェクト指向言語」に分類され、性質の似たものとしてRubyやPythonなどがあげられます。
動的型付け言語とは
引用元:「通信用語の基礎知識」
変数を定義する際に、そのデータ型(変数型)を明確にする必要がないプログラミング言語である。
値は必ず型を持っているが、変数にはどのような型の値でも代入できる仕様である。
オブジェクト指向言語とは
引用元:「IT用語辞典e-Words」
オブジェクト指向言語とは、プログラミング言語のうち、互いに関連するデータの集合とそれらに対する手続き群をひとまとめにした「オブジェクト」(object)をプログラムの基本的な構成単位として扱うことができるもの。
近年のPHP開発はフレームワークを利用することが多く、人気のものはLaravelやCakePHP、Symfonyなどです。特にLaravelを利用したサービスは増加傾向で、使い方をマスターしておくと受注できる案件の幅が広がります。
PHPの将来性について
PHPの人気は世界的に高く、将来性も非常に高いと言えます。
人気の理由の1つとして挙げられるのが、PHPをベースにして作られているCMS(コンテンツマネジメントシステム)「WordPress」の存在です。「W3Techs」の調査によると、世界のウェブサイトの43%はWordPressで作られており、圧倒的シェアを誇っていることが分かります。
WordPressのほかにも、PHPを利用して作られたサービスは数多くあります。
国内でも以下のような著名なサービスで使われています。
- インターネット百科事典「Wikipedia」
- グルメサイト「ぐるなび」
- スキルマーケット「ココナラ」
- オンライン学習サイト「Schoo」
- ECサイト構築CMS「EC-CUBE」
Webマーケティングが一般的になった昨今、企業が売り上げアップを目指すには、高いユーザーエクスペリエンス(UX)を提供するWebサイトの存在が不可欠です。PHPは高いパフォーマンスでWebサイトのUXを向上させられるため、今後も需要は高い状態が続くことが予想されます。
PHPで出来ること
HTMLやCSS、データベースや他システムとPHPを連携することにより、さまざまなシステムや機能を実現できます。
- Webサイトやブログサイトの制作
- WordPressのカスタマイズ
- ECサイト構築やカスタマイズ
- 問い合わせフォーム機能の実装
- 予約システムの構築
- コンテンツマネジメントシステム(CMS)の構築
- 勤怠管理など社内システムの構築
- データ絞り込み検索と一覧表示、ページング機能の実装
- 他システムAPIとの連携
PHPのフリーランス案件はある?
さまざまなWebページで採用されているPHPは常に需要が高く、フリーランス案件は数多くあります。WordPressのカスタマイズやフレームワークを使用した開発案件なども多いので、幅広い案件の中から仕事を選ぶことが可能です。
PHPの単価感は目安70万~
フリーランスPHP案件の一般的な単価相場は、月曜から金曜まで週5日で1か月間勤務した場合で、70万から100万程度となっています。プロジェクトマネジメントや設計・要件定義などの上流工程をこなした経験があれば、さらに高単価を狙うこともできます。
PHP案件はリモートワークしやすい
PHP案件はWebサイト制作が基本なので、リモートワークしやすい業務内容です。新型コロナ禍の影響でリモートワークが広く普及したこともあり、現在では多くのPHP案件がリモートワークに対応しています。
PHPの”フルリモート案件”ならRemotersで
PHPのフリーランス案件を探すなら、フルリモート案件特化のエージェントサービス『Remoters』がおすすめです。住んでいる地域や就業条件に関係なく、全国どこにいても高単価のPHP案件を探せます。
RemotersのPHP案件には、たとえば以下のようなものがあります。
- アパレル企業のDX推進案件
- メーカー向けWeb系システムの開発
- 人材プラットフォームのサーバーサイド開発
- 通信キャリア加盟店プラットフォーム開発
- 既存システム保守改修
- 受注管理・倉庫管理の一体型システム開発
- 住宅ローン業界のオンラインプラットフォーム化案件
ご要望に応じたPHP案件をご案内しますので、お気軽にご相談ください。
PHPバージョンアップについて
PHPは定期的にバージョンアップが行われています。直近のバージョンアップは2022年12月8日で、8.2にマイナーアップデートされました。
ここでは、PHPのバージョンアップに焦点を当ててご紹介します。
バージョンアップとは
現在のPHP最新バージョンは8.2です(2022年12月現在)。
PHPのバージョンは、「メジャー」「マイナー」で示され、バージョン8.2であればメジャーリリースが「8」、マイナーリリースが「2」となります。大きく仕様が変更されるのはメジャーリリース時で、マイナーリリースは不具合や細かな仕様変更に対応したものという違いがあります。PHPバージョン「8」のメジャーアップデートでは、新たに「JITコンパイラ」が実装され、従来バージョンのPHP7よりさらに処理速度が向上しました。
JITコンパイラとは
JITはJust In Timeの略。JITコンパイラは、ソフトウェアの実行時に環境に依存しない中間コードを機械語にコンパイルするため、「実行時コンパイラ」とも呼ばれている。「Java VM」や「HotSpot」などがその代表格。JITコンパイラは近年、多くのプログラミング言語における高速化技術として必要不可欠になっている。
引用元:「大塚商会IT用語辞典」
一般的に、プログラム言語でバージョンアップが行われると、旧バージョンには「サポート期限」が設けられます。この期限を過ぎて旧バージョンを使い続けていると、仕様やセキュリティ面で問題が発生する可能性が高くなるため、できる限り最新の安定バージョンにアップデートする必要があるのです。そのため、プログラミング言語でバージョンアップが発生すると、エンジニアは対応に追われることになります。
PHPのバージョンアップ時に気を付けたいこと
PHPのメジャーアップデートが行われると、これまでは使えていた構文や型、関数などが使えなくなることがあります。バージョンアップの変更点は公式マニュアルから都度アナウンスがあるので、バージョンアップ前に変更点をすべて確認しておくことが大切です。
新バージョンで使えなくなる関数などは、少し前のマイナーアップデートのタイミングで「非推奨」とされることが多い傾向にあります。非推奨とされたものは、今後のバージョンアップで削除される可能性があると判断するとよいでしょう。
PHPの基礎文法
初心者のために、PHPの基礎文法についてご紹介します。
PHPプログラムの基本
PHPプログラムを作成する際には、必ず守るべき3つのルールがあります。このルールを守らなければ、プログラムが正常に動作しなかったりエラーになる場合があるため注意が必要です。
- 拡張子は「.php」
- プログラムの最初と最後を「<?php」「?>」で囲む
- 各行の最後に「;」(セミコロン)を付ける
変数
変数とは、プログラミング言語において値を入れておくための箱です。
PHPで変数を使用する際には、任意の文字列の前に「$」を付けます。宣言時に型を明示する必要はありません。変数名の付け方に決まりはありませんが、何の値を格納している変数なのかが分かる名前を付けるのが基本です。
なお、「//」を付けるとそれ以降がコメントと判断されます。
<?php
$name = "Tanaka"; //文字列型
$age = 20; //数値型
$married_flg = true; //真偽型
?>
配列
変数は値を1つしか持つことができません。複数の値を入れる箱が必要な場合には、配列を使います。
PHPで配列を使用する場合には、必ず配列名を宣言して初期化する必要があります(PHP7までは宣言なしでも使えましたが、PHP8からエラーが出力されるようになりました)。配列の宣言方法は以下のとおりです。
<?php
$array1 = array(); //PHP5までの初期化方法
$array2 = []; //PHP7から短縮構文も使えるようになりました
?>
配列は、「キー」に対して「値」を持つ構造になっています。キーと値の持ち方によって、3種類に分類できます。
- インデックス配列
- 連想配列
- 多次元配列
インデックス配列
インデックス配列は、その名の通り、キーにインデックスが入っている配列のことです。
配列にキーを指定せず値を代入した場合、キーには自動的にインデックス(0からスタート)が割り当てられます。
<?php
$roster = ["Tanaka", "Yamada", "Sato", "Fujiwara"];
//上と同じ意味です
$roster = [
0 => "Tanaka",
1 => "Yamada",
2 => "Sato",
3 => "Fujiwara"
];
?>
連想配列
配列のキーにインデックス以外の値をセットすると、連想配列になります。
<?php
$roster = [
"red" => "Tanaka",
"blue" => "Yamada",
"green" => "Sato",
"white" => "Fujiwara"
];
?>
多次元配列
配列の値に配列が入れ子状態で入っているものを指します。あまり複雑化するとソースコードが読みにくくなるので、使用する際には注意が必要です。
<?php
$roster = [
"1-grade" => [
"1-A" => "Tanaka",
"1-B" => ["Yamada", "Inoue", "Kato"],
"1-C" => ["3" => "Sato", "10" => "Watanabe"],
"1-D" => "Fujiwara"
]
];
?>
条件分岐
プログラミングにおいて最もよく使われるのが条件分岐です。PHPの条件分岐では、if-elseを使用します。ifの後ろの()に記述した条件式がTRUEの場合のみ処理を行います。
<?php
if ($OS == "Windows") { //$OSに「Windows」が入った場合のみ処理される
echo "OS is Windows.";
} else if ($OS == "macOS") { //$OSに「macOS」が入った場合
echo "OS is macOS.";
} else if ($OS == "Linux") { //$OSに「Linux」が入った場合
echo "OS is Linux.";
} else { //上記のどれにも当てはまらない場合
echo "OS is Others.";
}
?>
条件分岐はif-elseのほかにswitchを使う方法もあります。詳細は公式マニュアルを参照してください。
ループ
条件分岐とともに、ループ構文もよく使われます。PHPのループにはいくつか種類がありますが、よく使われるのがforとforeach構文です。
for構文
for構文は、ループを実行する回数を指定する方法です。
<?php
for ($i = 0; $i < 5; $i++) {
echo "ループ".$i."回目\n";
}
?>
実行結果
ループ0回目
ループ1回目
ループ2回目
ループ3回目
ループ4回目
foreach構文
foreach構文は、主に配列を表示する際に使われるループ構文です。
<?php
//連想配列
$roster = [
"red" => "Tanaka",
"blue" => "Yamada",
"green" => "Sato",
"white" => "Fujiwara"
];
//foreachループでキーと値を表示する
foreach ($roster as $key => $value) {
echo "キー".$key."の値は".$value."\n";
}
?>
実行結果
キーredの値はTanaka
キーblueの値はYamada
キーgreenの値はSato
キーwhiteの値はFujiwara
PHPのループにはwhileを使う方法もあります。詳細は公式マニュアルを参照してください。
PHPのおすすめフレームワーク3選
PHPによるシステム開発では、フレームワークを使用するケースが一般的です。ここでは、代表的なフレームワークを3つご紹介します。
Laravel
Laravel(ララベル)はいま最も注目度の高いPHPフレームワークです。のちにご紹介する大規模開発向けのフレームワーク「Symfony」をベースに開発され、名前の由来は『ナルニア国物語』で登場する王城「ケア・パラベル」とされています。
人気の理由は、MVCモデルを採用した機能性と拡張性の高さ、そしてアップデートのスピードです。2022年12月時点での最新バージョンは9で、バージョンアップの回数は2011年のリリース時から数えて19回にものぼります。短いスパンでのアップデートで常に仕様が見直されることで、最新技術への素早い対応を可能にしているのです。
MVCモデルとは
引用元:「IT用語辞典e-Words」
MVCモデルとは、ソフトウェアの設計モデルの一つで、機能を「Model」(モデル)、「View」(ビュー)、「Controller」(コントローラ)の三つの役割に分離して実装し、それらが連携して処理を進める方式。
CakePHP
CakePHP(ケイクピーエイチピー)は、2005年のリリースから2017年ごろまで日本で最も利用されていたPHPフレームワークです。Laravelの登場によってトップの座は奪われましたが、今も多くのサイトで利用されています。
プログラミング言語RubyのフレームワークであるRuby on Railsの概念を取り入れ、高速開発と機動性を兼ね備えているのが特徴です。ユニークな名称は「ケーキを焼くように簡単に開発ができる」という発想から付けられており、ロゴや公式サイトにもパンケーキのようなデザインが使われています。
Symfony
Symfony(シンフォニー)は、中規模から大規模開発向けに作られたMVCモデルのフレームワークです。人気のフレームワークLaravelのベースになっており、豊富な機能性を有し、拡張性も高いのが特徴です。
「バンドル」と呼ばれる独特のコンポーネントを持っており、構造がやや複雑なので、初心者の学習コストはやや高めなフレームワークになっています。
まとめ
PHPは初心者でも比較的習得しやすいプログラミング言語ですが、人気や将来性が高いため、数多くのフリーランス案件を見つけられます。Laravelなど人気のフレームワークを組み合わせて習得し、エンジニアとしてのキャリアを高めていきましょう。
PHPに関するリモート案件をお探しでなら、フルリモート案件特化のエージェントサービスRemotersへお気軽にご相談ください。