PHP(Hypertext Preprocessor)は、ウェブ開発において広く使用されているサーバーサイドのスクリプト言語です。動的なウェブサイトやアプリケーションの開発に利用され、MySQLなどのデータベースと連携して、データ駆動型のウェブアプリケーションを構築するために不可欠なツールの一つです。この完全かつ包括的なPHP 101の記事では、PHPの基本から始まり、実際の開発で使用するための重要な概念やテクニックまでを解説します。
1. PHPの基礎知識
PHPは1994年にRasmus Lerdorfによって開発されました。最初は「Personal Home Page」として、ウェブページを動的に表示するためのツールとして利用されていましたが、その後、「PHP: Hypertext Preprocessor」として、より多機能なプログラミング言語に進化しました。
PHPは、HTMLコードに埋め込む形で記述することができ、サーバーサイドで実行されるため、ユーザーのブラウザにはその結果のみが送信されます。PHPを使うことで、例えばフォームの入力データを処理したり、データベースに接続して情報を動的に表示したりすることが可能です。
PHPの構文の基本
PHPコードはで始まり、?>で終わります。このタグ内でPHPコードを記述します。最も基本的なPHPのスクリプトは以下のようになります。
php
echo "こんにちは、世界!";
?>
上記の例では、echo関数を使って文字列「こんにちは、世界!」を画面に表示しています。
2. 変数とデータ型
PHPでは、変数を$記号で宣言します。PHPの変数は動的型付け言語であり、データ型を明示的に指定する必要はありません。PHPは変数に格納されたデータに基づいて、その型を自動的に判断します。
変数の例
php
$name = "太郎"; // 文字列型
$age = 25; // 整数型
$is_student = true; // 真偽値型
?>
PHPでは、以下のような主要なデータ型が存在します。
-
整数型(int): 数値(例:
10,-5) -
浮動小数点型(float): 小数点を含む数値(例:
3.14,-0.5) -
文字列型(string): 文字列(例:
"Hello",'こんにちは') -
真偽値型(boolean):
trueまたはfalse -
配列型(array): 複数の値を格納するための型
-
オブジェクト型(object): クラスのインスタンス
-
NULL: 変数が値を持たない状態
3. 演算子と制御構文
PHPでは、演算子を使って変数同士の計算や比較ができます。また、制御構文(条件分岐やループ処理)も重要な要素です。
演算子の例
php
$a = 10;
$b = 20;
// 足し算
$c = $a + $b; // 30
// 比較
if ($a < $b) {
echo "$a は $b より小さい";
}
?>
条件分岐(if文)
php
$age = 18;
if ($age >= 18) {
echo "成人です";
} else {
echo "未成年です";
}
?>
ループ処理(for文)
php
for ($i = 1; $i <= 5; $i++) {
echo "番号: $i\n";
}
?>
4. 関数とクラス
PHPでは、コードの再利用性を高めるために関数やクラスを使うことが一般的です。
関数の定義と呼び出し
php
function greet($name) {
echo "こんにちは、$name!";
}
greet("太郎");
?>
クラスとオブジェクト指向プログラミング(OOP)
PHPはオブジェクト指向プログラミングをサポートしており、クラスを定義して、オブジェクトを作成することができます。
php
class Person {
public $name;
public $age;
function __construct($name, $age) {
$this->name = $name;
$this->age = $age;
}
function introduce() {
echo "私の名前は{$this->name}、年齢は{$this->age}歳です。";
}
}
$person1 = new Person("太郎", 25);
$person1->introduce();
?>
5. PHPとデータベース
PHPはデータベースとの連携に非常に強力で、MySQLなどのデータベースと組み合わせることで、動的なウェブサイトを作成することができます。PHPを使用してデータベースに接続し、データを取得したり、保存したりすることができます。
MySQLへの接続
php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "test";
// 接続
$conn = new mysqli($servername, $username, $password, $dbname);
// 接続チェック
if ($conn->connect_error) {
die("接続失敗: " . $conn->connect_error);
}
echo "接続成功";
?>
データの取得
php
$sql = "SELECT id, name, age FROM users";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "ID: " . $row["id"] . " - 名前: " . $row["name"] . " - 年齢: " . $row["age"] . "
";
}
} else {
echo "結果がありません";
}
?>
6. フォームとデータ送信
PHPはフォームを使ってデータを送信し、サーバーサイドで処理するためにもよく使用されます。フォームデータは$_GETや$_POSTグローバル変数を使って取得することができます。
フォームの例
php
フォームデータの取得
php
$name = $_POST['name'];
$age = $_POST['age'];
echo "名前: $name, 年齢: $age";
?>
7. PHPのセキュリティ
ウェブ開発では、セキュリティ対策を怠ることができません。PHPを使用する際は、以下のセキュリティ対策を講じることが重要です。
-
SQLインジェクション対策: プレースホルダやパラメータ化されたクエリを使用してSQLインジェクションを防ぐ
-
クロスサイトスクリプティング(XSS)対策: ユーザー入力を適切にエスケープする
-
セッション管理: セッションIDを適切に管理し、セッションハイジャックを防ぐ
8. PHPの最新のバージョンと新機能
PHPは定期的に新しいバージョンがリリースされ、性能の向上や新しい機能の追加が行われています。たとえば、PHP 7以降は大幅なパフォーマンス向上が見られ、PHP 8ではJIT(Just-in-Time)コンパイラが追加されました。
結論
PHPは、ウェブ開発において非常に強力で柔軟なツールです。動的なウェブページの作成、データベースの操作、フォームの処理など、あらゆる要素を組み合わせることができ、ウェブアプリケーションの基盤として広く利用されています。上記で紹介した基本的な概念を理解することで、PHPを使った開発を始めるための準備が整います。
