Search

検索したいワードを入力してください

2019年02月12日

PHPで出来ること、基本的な書き方について徹底解説!

近年、PHPのようなWebアプリを作ることができるプログラミング言語が注目されています。PHPを一から学んで活用したい方も多いのではないでしょうか。この記事ではPHPの基礎知識を中心に紹介しています。PHPがどのようなものか知りたい方はぜひ読んでみてください

PHPとは

近年、Webプログラマの需要が高まりつつあり、それと同時にPHPやRubyといったWebアプリケーションや動的なWebサイトを作ることができるプログラミング言語も注目されてきています。

この記事では、最も多くのWebページで使用されているプログラミング言語、PHPについて詳しく紹介していきます。

サーバーサイド言語とは

PHPやRubyなどWeb(サーバー)上で動作するプログラミング言語のことを、一般にサーバーサイド言語と呼びます。PHPはWebページ作成に特化しており、文法も分かり易いので初心者にはオススメのプログラミング言語です。

中小規模なWebサイトやWebアプリケーションであればPHPやRubyがよく使われ、大規模なものになってくるとJava(JSP: JavaServer Pages、Java Servlet)などが使われています。

PHPでできること

前述したようにPHPは動的なWebページを作成するのに優れています。同じ界隈で有名なRubyよりも歴史が長い言語なので、痒い所に手が届くプログラミング言語と言えます。個人のWebサイトやブログ、または会社のホームページを作るならばPHP一択です。

ちなみに有名なフレームワーク、WordPressもPHPです。

HTMLソースコードに埋め込める

PHPやRubyなどの言語の最大の特徴は、HTMLソースコードへの埋め込みが可能であることです。これが動的なWebページを実現させています。

例えば、来訪者がどの時間帯に訪れたかによって、表示内容を変えることができたり、来訪者の使っている端末によって表示内容を変える、といったこともPHPを使えば可能になります。

Webページの管理を楽にする

実はPHPを使うメリットは動的なWebページに限りません。PHPを使うと共通部分は別のファイルで書いておいてそのファイルを各ページで共有できるようになります。10ページ以上の統一されたWebページを作る時にHTMLのみで書くと後々大変なことになります。

例えば「○○(共通部分:ヘッダーやフッター、サイドメニュー)の内容を変えたい」というような場合にPHPを使えばその共有ファイル一つの修正でOKです。

データベースと連携する

PHPを使うとデータベースと連携ができるようになります。「データベースと連携できると何が嬉しいの?」と思う方もいるでしょうが、分かりやすい例をあげると「ブログ」のようなものが作れるようになります。

Webページ上で、文章を書いてデータベースにアップロードする。すると、違うページでデータベースから情報を取り出して記事を表示させる、といった流れがPHPでは可能です。

クライアントから送信された情報を受け取る

前述したように、クライアントがWebページ上で情報を入力しサーバーに送信する、といったことをPHPは可能にさせます。例えば、Webアプリのアカウント登録やログイン機能などが分かりやすいでしょう。

サーバーとクライアントとは

ここで、聞き馴染みの無い単語が出てきたので簡単に紹介します。サーバーとクライアントとは何を指すのでしょうか?

サーバー

サーバーとは、一言でいえば「データを管理する倉庫」です。サーバーにもいろいろな種類があります。Webページに欠かせない「ウェブサーバ」データベースを管理する「データベースサーバ」メールを管理する「メールサーバ」ソフトウェアを管理する「ソフトウェアサーバ」などがあります。

もし個人サイトやブログを運営するのならサーバーを借りる必要があります。日本ではさくらのレンタルサーバなどが有名です。スタンダードプランでも月額515円で借りることができます。

クライアント

クライアントとはいわゆる「サーバーからデータやサービスを受け取る側」を指します。つまり今皆さんがこの記事を読むのに使用している、ブラウザもクライアントに当たります。

この「サーバー」と「クライアント」という関係があってこそ、様々なサービスが成り立っています。

PHPがプログラミング初心者向きな理由

さて、話はPHPに戻りますが、PHPが初心者向きなプログラミング言語と呼ばれるには理由があります。何度も言いますが、PHPは分かりやすく、痒い所に手が届くプログラミング言語です。

関数が豊富

PHPの強みのひとつは「関数が豊富」であることです。「この機能実装したいけど、自分で実装するのは面倒だなあ」と思ったときPHPマニュアルで検索してみると、その機能の関数が既に用意されていることもよくあります。ちなみに現在PHPで用意されている関数・メソッドはこちらで確認できます。

文字数をカウントする関数や、指定されたファイルが存在するか否かを確認する関数など、本当にたくさんあります。

型の自動変換機能がある

C/C++やJavaのような型宣言が必要な言語とは違い、PHPでは型宣言の必要はありません。例えば、C++11では文字列(string)型から整数(int)型に変換する際、

string x = "2";
int y = stoi( x );

のように記述しますが、PHPでは

$x = '2'; // 文字列型
$y = 3 + $x; // 整数型

と記述するだけでPHPが自動的に型を変換してくれます。

しかし、予期せぬ型に自動変換されてしまう場合もありますので、自分で以下のように宣言することも可能です。


$x = '2';
$y = (int)$x

フレームワークが豊富

PHPは20年以上主要なプログラミング言語として使われてきました。その結果、いろいろなフレームワークや、WordPressやEC-CUBEなどの便利なサービスが産まれました。

フレームワークとしては以前から人気の高いCakePHPやSimfony、最近勢いのあるLaravelなどが有名です。

PHPのインストール

前述したようにPHPはサーバーサイドのプログラミング言語です。レンタルサーバーのほとんどはPHPがインストール済みなので、サーバーにPHPファイルをアップロードすると勝手に動作してくれますが、まだネット上に公開したくないときや、自身のパソコン上で簡単なPHPコードの動作確認をしたい場合は、PHPが動作する環境を作らなければなりません。

この記事では、ローカル環境を作り、PHPを自分のパソコンで動作するようにする方法を紹介します。

XAMPP

Webサイトをサーバーにアップロードする前に自分のパソコンにローカル環境を構築し動作確認をする必要がありますが、XAMPP(ザンプ)はそれに必要なものをすべてインストールしてくれる無料のソフトウェアです。

XAMPPという名前は色々なOSで使えるクロスプラットフォームのXApache、MySQL(MariaDB)、PHP、Perlからきています。インストールは下記リンクから可能です。

基本的なPHPの書き方

PHPの拡張子は".php"です。PHPのコードの中にHTMLが埋め込まれていても拡張子は".php"を用います。
また、PHPのコードを記述するときは、

<?php
// ここにPHPコードを記述
?>

のように<?php ?>で囲みます。HTMLを埋め込まず、PHPのみのコードの場合は最後の?>は必要ありません。行末にはセミコロン";"を付けます。

文字列を扱う時は"Hello, World."というふうにダブルクォーテーション、あるいは'Hello, World.'のようなシングルクォーテーションを使います。どちらでも構わないのですが、HTMLタグを文字列の中に含ませる場合、'<a href="https://google.com">'のようにシングルクォーテーションで記述すると、エスケープシーケンスを用いる必要がありません。

またPHPのバージョンやサーバーの設定によっては<? ?>という省略タグも代わりに仕様できますが、可読性が低下するのでお勧めできません。

PHPの基本構文

PHPには多くの構文がありますが、ここではよく使う基本構文を簡単に紹介します。以下で紹介する、3つの構文を覚えておけば割と事足りますので必ず覚えておきましょう。また、いずれの文法も他のプログラミング言語とあまり変わりはありません。

echo

echoは出力するための命令です。C言語のprint()、C++のcout、JavaのSystem.out.print()にあたります。改行はされません。改行する場合は\nを記述します。
例えば、

echo 'Hello\n';
$str = 'World.';
echo 'Hello, ' . $str . '\n';

のように記述すると、

Hello
Hello, World.

という出力結果になります。ここでコロン.は結合演算子です。

もちろん、echoを使って、以下のようにHTMLタグを出力することも可能です。echo '<a href="https://google.com">Google';

また、HTMLタグ内で変数を表示させたいだけであれば、

<body>
<?php $str = 'Hello, World.'; ?>
<h2> <?=$str ?></h2>
</body>

と書くこともできます。

if

ifは条件分岐に関する命令です。C/C++やJavaなどと使用方法は変わりません。以下のように記述します。

$num = 6;
if( num > 10 ){
echo 'num is more than 10.';
}elseif( num > 5 ){
echo 'num is more than 5.';
}else{
echo 'num is less than 5'
}

もちろん、処理部分が1文だけであれば、括弧{ }は省略可能です。
また、以下のようにも記述可能です。

$num = 6;
if( num > 10 ):
echo 'num is more than 10.';
else if( num > 5 ):
echo 'num is more than 5.';
else:
echo 'num is less than 5'
endif:

ここで注意が必要なのは、括弧{ }を使う場合はelse ifelseifのどちらでも良いですが、コロン:を使う場合elseifでなければなりません。

for

forもまた重要な基本命令のひとつで、同じ処理を複数回繰り返す命令です。こちらも基本的には他のプログラミング言語と使用方法は変わりません。

for( $i = 0; $i < 10; $i++ ){
echo $i . ' ';
}

と記述すれば、0 1 2 3 4 5 6 7 8 9という実行結果になります。

foreach

foreachも基本の反復処理命令の一つですが、forとは少しだけ用途が異なります。foreachは配列を参照するための命令で、以下のように使います。

$array = [2 , 3 , 1 , 7 , 4];
foreach( $array as $a )
echo $a . ' ';

実行結果:2 3 1 7 4

もし、配列の要素を変更したい場合はforeach( $array as &$a )のように&を記述します。

PHPの学習方法

PHPに限らずプログラミング言語を独学で学ぶことはとても大変なことです。まずは、PHPを使って最終的にどんなものを作りたいのか、どう活用していきたいのか、といった目標を定めて学習を始めると良いでしょう。

以下ではお勧めの学習手段を「書籍」と「Webサイト」に分けていくつか紹介していきます。

PHPを学習出来る書籍

PHP7 + MariaDB/MySQL マスターブック(著:永田 順伸)

この本は先ほど紹介した、XAMPPを使って、PHPの基礎からデータベースの構築まで細かく書いてある書籍です。しかもこの書籍では「会員管理アプリケーション」を作成を通して解説がなされており、学習のゴールも明確になっているのでお勧めです。

仕事でPHPを本格的に扱うことになったので購入しました。
会員管理システムを作るという目標を立ててそれに沿って書いているので他の入門書と違って
実践的な内容が学べます。
文中ではNetBeansを使っていますがVisualStudioCodeのほうがよかったのではと思ってしまいました。

出典: https://www.amazon.co.jp/PHP7%EF%BC%8BMariaDB%25EF%25BC%2... |

プログラミング学習サイトでの学習方法

スラスラわかるPHP (著:志田仁美)

プログラミング初学者に人気のあるスラスラわかるシリーズのPHP版です。PHPに限らずプログラミングやインターネット、サーバーの基礎知識から解説が載っており、プログラミング初心者にも安心な一冊です。また、あらかじめHTML/CSSの知識が少しだけあると、より理解が深まるでしょう。

PHPの“基本の文法”、と私が個人的に思っているものを、
しっかりと「制御構文」「配列」「関数」と明解に分け、解説してくれているのは、
本書以外に見かけません。
「制御構文」「配列」「関数」、これらは、パターンの“文法”として理解し、覚えられる。
例題的プログラム実践だけでは、効率が悪い、とお感じの方には、
本書は最適です。(概念としての理解もできる、ということです)
書店店頭でも他書も見てみましたが、
「制御構文」「配列」「関数」~「データベース」「セキュリティ」~「オブジェクト指向」まで
端的に分節化して分かりやすく解説しているのは(私の見た限り)無かったです。
その点で、PHP理解に非常に役立つ解説書と思います。

出典: https://www.amazon.co.jp/%E3%82%B9%E3%83%A9%E3%82%B9%E3%8... |

PHPは日本でも人気のあるプログラミング言語なので、日本語で解説をしているWebサイトもとても多く存在します。その中でもオススメするプログラミング学習サイトを幾つかおすすめします。

ドットインストールはプログラミング初心者から学ぶことができる動画学習サイトです。ひとつのレッスンがすべて3分以内に収まっているので気軽に学ぶことができるのも特徴です。また会員登録は無料でありながら、PHPに限らず色々なレッスン動画を視聴可能です。

paizaが運営している学習サービスで、動画学習が基本となります。会員登録すれば一部無料で受講できますのでぜひお試ししてみてください。またpaizaではスキルチェックのための問題が豊富で、その問題を通して大幅なスキルアップが図れます。スキルチェックについては全て無料です。

まとめ

この記事ではPHPの基本知識を中心に紹介しました。プログラミングは一つの言語を習得すると他の言語も習得しやすくなります。まずは未経験者にオススメなPHPからプログラミングの勉強やそのフィードバックとして実際に使うことを始めてみてはいかがでしょうか。

【PR】多くの人がプログラミングを諦めてしまう理由をご存知ですか?



近年プログラミングを勉強する人が増えています。

プログラミング学習者の多くは独学から取り組もうとしますが、だいたい80%ほどは3ヶ月も続かずに諦めてしまいます。早い人は1日目で。

多くの人がプログラミングを独学しようとして諦める理由は、次の3つ。
●モチベーションが維持できない
●エラーの原因・解決方法が分からない
●どう学習すればよいか分からない

TechBoostというプログラミングスクールでは、みんなと一緒にプログラミングをするのでモチベーションの維持ができ、分からないことがあればマンツーマンで教えてくれ、徹底的に研究された初心者向けの教材が揃っています。

TechBoostを卒業後、実際にエンジニアとして転職した方もいるほど。

本気でプログラミングを学びたい方は、一度無料のカウンセリングでご相談ください。プログラミングを嫌いになる前に。

tech boostについて

オーダーメイド型の学習コンテンツを提供する「tech boost」 は、エンジニアのキャリア支援に特化したサービスを複数展開している株式会社Branding Engineerが運営しているプログラミングスクールです。最短3ヶ月間で、未経験から『プログラミングの基礎』、『実際に業務で必要となるスキル』、『今のトレンドとなっている知識』まで学べ、ご希望の方にはプロのキャリアアドバイザーによる就業支援を行うことができます。

tech boost卒業生インタビュー

tech boostの卒業生の声を聞きました。あなたがプログラミングを学びたい理由を、一度考えてみてください。
営業→Javaエンジニア→Rubyエンジニアと転向し、第一志望のFinTech企業で働く山下さん
元営業、ビジネスのわかるエンジニアを目指す菅原さん
サンフランシスコに交換留学し、シリコンバレーのVCでインターン中の梅本さん
予備校の営業から半年でエンジニア転職を果たした小田島さん

tech boostの口コミ



Related