- 更新日: 2017年06月22日
- 公開日: 2017年06月01日
PHPとは?初心者のために基礎から学習書籍まで徹底解説
JavaやCに比べると学習難易度が低いと言われるPHP。しかし、プログラミング未経験者にとってPHPの学習、習得は決して簡単なものではありません。
またRubyやPythonなど他の言語と比べて、「本当に自分はPHPを学ぶべきなのか?」PHPにすべきか悩んでおられる方も多いと思います。そこで今回はPHPって何?という基本からできること、書き方から学習サービスまで、これから学習したいという人向けに総まとめしました。
PHPとは?
まず初めに、「PHP」って何?という方のために基本情報を紹介しましょう。
PHPの歴史と現在
PHPは、Hypertext Preprocessorの略語でWeb用に開発されたプログラミング言語です。 1995年に初回版がリリースされて、最新バージョンはPHP7となり、管理・開発はPHP開発チームとZendテクノロジーが担っています。
Webサイトのバックエンド言語として8割以上のサイトがPHPを利用し、全Webサイトの25%以上はPHPをベースとしたWordPressというソフトを使って開発・運営されています。
PHPエンジニアの求人状況としてJavaに次ぐ需要があり、indeedという求人サイトでの求人は22,173件(2017/5/31現在)となっています。
これらのことからPHPは、歴史と実績があり、市場からもニーズの高い言語であることがわかります。
どんな言語?
PHPは、Web用に開発された言語なので、ブラウザ間の設定が楽などありますが、学習初期段階もしくはPHPがはじめての場合は、そうした利点が分かりにくいものです。
言葉を並べるより、実際のコードを見た方がイメージ湧くと思いますので、PHPとJavaScript、Ruby、Javaの4種類の言語を使って、簡単な文字を出力するプログラムを紹介します。
■PHP■
<? php
echo "Hello World!";
?>
■JavaScript■
document.getElementById("demo").innerHTML = "Hello World!";
■Ruby■
puts "hello world!"
■Java■
public class HelloWorld {<br>
public static void main(String[] args) {
System.out.println("Hello World!");
}}
どれも「Hello World!」を出力するプログラムですが、プログラミング言語によって長かったり短かったりすることが分かります。
JavaやJavaScriptは人気のある言語ですが、少し難しそうな印象を受けますね。逆にPHPやRubyは短いコードで文字出力でき、プログラミング初心者でも扱いやすそうです。
PHPを考えている方で、Rubyにしようか悩んでいるケースをよく見受けますので、ココに簡易比較表をご紹介します。どちらもWebサービス向けの言語のように感じますが、利用環境だったり学習後の就職状況などに違いがみられます。
PHP | Ruby | |
---|---|---|
公開年 | 1995年 | 1995年 |
プログラミング初心者向け | ○ | ○ |
オブジェクト指向 | ○ | ○ |
日本語のチュートリアル | 多い | 多い |
フレームワーク | 多数 | Ruby on Rails ほぼ一本 |
CMS | WordPressなど多数 | Ruby on Rails 上に構築する例が多い |
ライブラリ | まずまず | 多い |
求人数(indeed)2017/5/31時点 | 22173 | 8456 |
学習曲線 | 緩やか | 急 |
HTML内への記述 | ○ | × |
サーバー対応 | ほぼ全てのサーバーで○ | 格安レンタルサーバーは未対応 |
コードエラー時のコメント表示* | ○ | × |
学習曲線/緩やかな方が初心者でも低ストレスで学習を進めることができます。急な場合は、学習初期段階で挫折するリスクが伴います。
*
ブラウザ上の場合
PHPはどこでどんな風に使われているの?
実際にPHPが使われているサービスを確認して、自分でもどんなことができるようになるのか想像してみましょう。
■PHPが使われている事例■
ウィキペディア
誰でも編集できるウィキペディアは、PHPによってユーザー管理や投稿機能を実装しています。Facebookの一部
初期のFacebookは、PHPをベースに開発しました。今は、HackやC++、Java、Pythonなど多様な言語使用になっています。Yahoo!
本家Yahoo!をはじめYahoo!JapanもPHPを使っています。ユーザー管理をはじめ、Yahoo!知恵袋などの投稿ツールとしても活躍中です。コーポレートサイト
クックパッドや京都水族館、早稲田大学など多様な企業・団体がPHP(WordPress)を使ってWebサイトを構築・運営。PHPは、ニュースの投稿や複数のページで共有して使うトップエリアやサイドエリア、フッターエリアの一括編集に役立っています。稼いでいるブログサイト
やぎろぐさんなど、多数のブログサイトでPHP(WordPress)は使われています。主に記事の投稿や管理にPHPは使われます。
どんなメリットがあるの?
まず最初に挙げられるPHPのメリットは、自動計算できることです。例えば単位の変換やBMIなどの算出、ローンの支払額など「面倒くさいな」と思うことをPHPはやってくれます。
またブログ投稿などで画像サイズを揃えたい時の画像加工も、PHPは自動でやってくれます。
この他にも「人間が面倒くさいな」と思うようなことや、「あったらいいな」と思う機能をPHPは実現してくれます。いくつか例を挙げましょう
■PHPでできることの例■
- サイト内検索機能
- 関連記事・人気記事の抽出表示
- メンバー登録機能
- ユーザー同士の連絡機能
- コメント機能
- 買い物機能
- 予約機能
- 支払い機能
- 課金システム
- 評価機能
- 投票機能
- グラフ作成
- ファイルのアップロード機能
- データの自動編集 +Webサイトの管理
- APIの利用
→ 株価や商品価格など、変動的なデータの取得に
→ Google 翻訳やGoogleドライブとの連携
→ 残高確認・支払いに/Android Payやビットコインなどの決済サービスの導入に
→ 人工知能機能の利用に/画像認識や自動テキストの作成、自動タグ付けなど
PHPのデメリットは?
メリットの多いPHPですが、逆にデメリット(PHPではできないこと)もいくつかあります。代表的なものを紹介します。
- Webオンリー
Webに特化しているが故にWeb以外には弱い面があります。例えばAndroidアプリをPHPだけで作ることはできません。アプリを作りたいならPHPを最初に学ぶ必要はないでしょう。
トラブルの原因を特定しにくいことがある PHPは設定に依存する部分が多く、トラブル発生時の原因を特定しにくいとよく言われます。
セキュリティーに弱い 利用者の多いPHP環境(特にWordPress)を突いてハッキングが起きていますので、正しい基礎知識が必要になってきます。
PHPの書き方
基本的な書き方
PHPは、HTMLコード内に記述する方法とPHPのみで記述する2通りの書き方があります。
一般的に学習初期段階は、HTMLコード内にPHPを書いていきます。
■HTMLコード内にPHPを記述■
PHPの文字出力には、echo や print、もしくは省略版が使われます。
<!DOCTYPE html>
<html lang=”ja”>
<meta charset="UTF-8" />
<body>
<?php echo "Hello World!"; ?>
<?php print("Hello World!") ?>
<?= "Hello World!" ?>
</body>
</html>
■PHPのみ(WordPressのfunctionファイル)■
function.php
<?php
if ( ! isset( $content_width ) ) {
$content_width = 660;
}
if ( version_compare( $GLOBALS['wp_version'], '4.1-alpha', '<' ) ) {
require get_template_directory() . '/inc/back-compat.php';
}
if ( ! function_exists( 'twentyfifteen_setup' ) ) :
function twentyfifteen_setup() {
load_theme_textdomain( 'twentyfifteen' );
add_theme_support( 'automatic-feed-links' );
add_theme_support( 'title-tag' );
add_theme_support( 'post-thumbnails' );
set_post_thumbnail_size( 825, 510, true );
つづく・・・・
構文の一例
PHPの記述は特徴的で、最初と最後に <? ?> がつきます。
基本的な構文はさきほどの Hello World を見ればイメージ頂けると思いますので、一歩進んでオブジェクト指向(プログラムの作り方の1つ)を採用した場合のPHPをご紹介させて頂きます。
コードを読めばわかるのですが、最初に共通して使うクラスを設定し、後でクラスに入るデータを書いています。また今回は、データを直接書いていますが、データベースと連携すると変動的なデータにも対応できるようです。
<?php
// クラスの定義
// 各ユーザの名前、身長、体重が表示されます
class Hito {
public $name;
public $height;
public $weight;
function show() {
echo "{$this->name}さんの身長は{$this->height}cm、体重は{$this->weight}kgです。<br>";
}
}
// 最初のデータ
$hito1 = new Hito();
$hito1->name = 'おおしま';
$hito1->height = 170;
$hito1->weight = 50;
$hito1->show();
// 2番目のデータ
$hito2 = new Hito();
$hito2->name = 'やまだ';
$hito2->height = 152;
$hito2->weight = 44;
$hito2->show();
?>
★よろしければ実際に上記コードをコピペして、PHPを実行してみて下さい。★
<< オンラインのPHPサービス >>
http://phptester.net/
尚、PHPの最新バージョンは7になりますが、多くの学習サイトや参考書ではバージョン5のものが多いと思います。バージョン5で書いたPHPコードも7は処理できますので、ご安心下さい。(参考記事)
PHPの使われ方
PHPは大きく分けて2通りの使い方があります。
1つは、PHPだけ使って計算処理や通信処理を行う方法、もう1つはMySQLなどのデータベースと併用して使う方法です。
多くのWebサービスでは、後者のデータベースと接続してWebサイトを構築していきます。 つまりPHPの学習は、MySQLなどデータベースの知識も合わせて学習していく必要があります。
■MySQL+PHPの例■
<pre>
<?php
$host = 'localhost'; // データベースのホスト名又はIPアドレス
$username = 'root'; // MySQLのユーザ名
$passwd = 'パスワード'; // MySQLのパスワード
$dbname = 'codecamp'; // データベース名
$link = mysqli_connect($host, $username, $passwd, $dbname);
// 接続成功した場合
if ($link) {
// 文字化け防止
mysqli_set_charset($link, 'utf8');
$query = 'SELECT goods_id, goods_name, price FROM goods_table';
// クエリを実行します
$result = mysqli_query($link, $query);
// 1行ずつ結果を配列で取得します
while ($row = mysqli_fetch_array($result)) {
print $row['goods_id'];
print $row['goods_name'];
print $row['price'];
print "\n";
}
// 結果セットを開放します
mysqli_free_result($result);
// 接続を閉じます
mysqli_close($link);
// 接続失敗した場合
} else {
print 'DB接続失敗';
}
?>
<pre>
【MySQL側】
【結果】
PHPを学習できる本(初心者向け)
PHPの絵本 第2版 Webアプリ作りが楽しくなる新しい9つの扉
可愛いイラストを使って、難しいPHPをオブラートに教えてくれる学習本にです。PHP以外にWebやHTMLのことなども解説してくれます。
AmazonへいきなりはじめるPHP~ワクワク・ドキドキの入門教室
2011年出版のちょっと古い本にですが、PHPの雰囲気を掴むにはちょうどいい量と解説の本にぴったり。PHPからMySQLまで一通り体験することができます。
Amazonへいちばんやさしい PHP の教本 第2版 人気講師が教える実践 Web プログラミング
人気シリーズの最新版PHPブックです。レシピ投稿サイトの完成を目標にPHPとMySQLを学んでいきます。
Amazonへ
こちらに初心者がみるべき10冊の書籍をまとめましたのでご覧ください。
PHPを学習できるサービス(無料)
Progate
画像出典Progate
国内トップクラスのオンライン学習サイトProgateでPHPを学習することができます。オブジェクト指向も学習・実演できる有料サービスですが、残念ながらMySQLには対応していません。
W3Schools.com PHP
英語サイトですが、PHPの基礎からJavaScriptとの併用事例、MySQLとの連携などPHPに関係することを一通り知ることができます。
WordPressの体験
こちらも英語ですが、オンライン上でWordPressを体験することができます。管理画面をはじめ、投稿も実際にできますので「PHPってこんなことができるんだ」という感覚を掴むのにいいと思います。(レッスンはありません)
画像出典WordPressの体験
PHPをこれからやるために必要なこととは?
PHPをちょっとやってみよう!と思った矢先に恐縮ですが、PHPやMySQLを実行するにはいくつかのソフトウェアをインストールする必要があります。
まず最初に必要となるものは、開発環境ソフトのXAMPPもしくはMAMPのインストールです。
PHPの開発環境構築
XAMPPもしくはMAMPをインストールすると、PHPコードをパソコンで処理できるようになり、MySQLというデータベースを利用可能です。
- XAMPP/PHPの代表的な開発環境ソフトで、参考書でもよくXAMPPが利用されています。
- MAMP/XAMPPよりシンプルな管理画面で、インストールするとPythonという言語も使えるようになります。
エディタの準備
PHPコードをコピペしたり、編集したり、書いたりする上で、エディタは欠かせません。すでに利用されているエディタがあれば慣れているのでそれでいいと思います。
エディタはまだ、という方はAtomやCotEditor、いかがでしょうか?
MySQLの確認
データベースMySQLの管理は、phpMyAdminを使うと便利です。 http://localhost/phpmyadmin にアクセスして、データベースにログインできるかチェックしておきましょう。
■開発環境とか面倒くさい、という方は■
ハードディスクの空き容量の関係や時間の関係で、開発環境を手っ取り早く終えたい方もいらっしゃると思います。
そんな時はクラウド上で作業できる無料IDEが便利です。
ただし、XAMPPなどのローカル環境に比べると実行速度は遅いです。
- Cloud9/PHP、MySQL共に実行可能
- codeanywhere/PHPフレームワーク多数有り
\Webサイト担当者としてのスキルが身に付く/
まとめ
PHPは、20年以上前から世界中のプログラマに愛され、今も進化を続けている言語です。
「PHPはじめてみようかな? どうしようかな?」と、もしも迷われているようであれば、一度試してみることをオススメします。 試してみて、面白ければ学習をはじめたり、ブログ(WordPress)やWebアプリ開発をはじめてみるといいでしょう。
また仕事が忙しくていろいろ考える時間がない方は、CodeCampという有料のオンラインスクールでPHPをはじめる、という手段もあります。
CodeCampから提供している、オンラインのマンツーマン・プログラミングレッスンは無料体験レッスンも行われていますので、選択肢の一つとして考えてみるのもいいかもしれませんね。
タイミングが良ければ、今スグにでも体験できますので、よかったら覗いてみて下さい。
- この記事を書いた人
- オシママサラ