PHP(ピーエイチピー)。サーバサイドで動作するウェブアプリケーション開発に適した、スクリプトタイプのオープンソースプログラミング言語です。

オープンソースの言語/PHPとは

PHP(ピーエイチピー)。サーバサイドで動作するウェブアプリケーション開発に適した、スクリプトタイプのオープンソースプログラミング言語です。

PHP(ピーエイチピー)とは、サーバサイドで動作するウェブアプリケーション開発に適した、スクリプトタイプのオープンソースプログラミング言語です。

目次

「PHP」基本情報
・概要
・主な特徴
・同様製品(概要情報)
・導入事例
・ライセンス情報
・ダウンロード
・PHPの最新情報を手に入れるには
・情報提供協力

「PHP」参考情報 第1回 PHP入門まとめ(OSSエンジニア初心者向け)
・(1)PHPとは
・(2)初心者が参照するべき「お役立ちPHPサイト」のご紹介
・まとめ

「PHP」参考情報 第2回 PHPの正規表現の使い方まとめ
・(1)正規表現とは
・(2)PHPの正規表現がよく分かる「お役立ちPHPサイト」のご紹介
・(3)まとめ

「PHP」参考情報 第3回 PHPの演算子の使い方まとめ
・(1)PHPの演算子とは
・(2)PHPの演算子がよく分かる「お役立ちPHPサイト」のご紹介
・(3)まとめ

「PHP」参考情報 第4回 PHPの配列、連想配列の初期化、追加、ソート
・(1)PHPの配列(連想配列)とは
・(2)PHPの配列がよく分かる「お役立ちPHPサイト」のご紹介
・(3)まとめ

「PHP」参考情報 第5回 PHPの文字列の検索、置換、分割
・(1)PHPの「文字列検索」
・(2)PHPの「文字列置換」
・(3)PHPの「文字列分割」
・(4)まとめ

「PHP」参考情報 第6回 PHPのコメントアウト
・(1)コメントアウトとは
・(2)PHPコメントアウトの方法
・(3)PHPコメントアウトの注意点
・(4)まとめ

「PHP」参考情報 第7回 PHPの比較演算子の使い方
・(1)PHPの比較演算子とは
・(2)PHPの比較演算子の使い方がよく分かる「お役立ちPHPサイト」のご紹介
・(3)PHPの比較演算子使用時の注意点
・(4)まとめ

「PHP」参考情報 第8回 PHPの日付の計算(加算・減算)
・(1)PHPの日付計算(加算・減算)のやり方
・(2)PHPの日付計算における注意点 先月翌月計算
・(3)まとめ

「PHP」参考情報 第9回 PHPの構文チェック
・(1)さまざまなPHP構文チェック方法の紹介
・(2)統合開発環境でのPHP構文チェック
・(3)まとめ

「PHP」参考情報 第10回 PHPの変数と宣言方法
・(1)PHPの変数と宣言
・(2)PHPのスコープとローカル変数とグローバル変数
・(3)まとめ

TOPに戻る

「PHP」基本情報

概要

【略表記】
PHPとは、「PHP: Hypertext Preprocessor」を再帰的に略表記したもので、「Personal Home Page」に由来するとされています。

【基本説明】
静的なHTMLページにプログラムを埋め込み、動的なWebページを作成することを目的として開発されたプログラミング言語です。
URLの最後が、「.html」や「.htm」ではなく、「.php」となっているサイトは、PHPがページを作成しています。
PHPの特徴として、初心者に対しては非常に分かりやすいという点があります。「Java」や「C」と比較すると、「軽量プログラミング」とされていて、コードの作成/修正を簡単に行えます。また、プロフェッショナルプログラマに対しては、数多くの先進的な機能を提供しています。
言語としては、型定義のあいまいさ、関数が豊富などの特徴があります。

【クライアントサイドスクリプト と サーバサイドスクリプト】
クライアントサイドスクリプトとは、クライアント側のWebブラウザ内で処理を実行するスクリプトのことです。JavaScript、VBScriptなどです。
サーバスクリプトとは、Webサーバ内で実行されるスクリプトであり、スクリプトがページを作成して、クライアントへ返します。PHP、JSP(JavaServer Page)などです。作成されたページのみが送信されるため、PHPコードを閲覧者に読み取られないという利点があります。

主な特徴

【文法が比較的単純で分かりやすい】
C言語、Java、Perlなどの影響を受けた記法/文法を採用したプログラミング言語であるため、シンプル仕様で学習しやすく、簡潔な記述方法でコードを書くことができます。

【データベース連携がやりやすい】
標準で外部のデータベースシステムなどと接続する機能が提供されているため、データベース連携するWebアプリケーションを開発しやすいメリットがあります。

【多くのWebアプリケーションフレームワークが対応】
「Apache HTTP Server」や「Microsoft Internet Information Services(IIS)」など主要なWebサーバの多くに標準で対応しており、PHPで開発されたアプリケーションは、さまざまな環境で同じように稼動させることができます。

【WordPressカスタマイズ】
WordPressはPHPで開発されているため、PHPでWordPressをカスタマイズすることができます。

【豊富なパッケージやモジュール】
PHPプログラムをパッケージとしてモジュール化したり、外部のパッケージを取り込んで利用する機能があります。
「PEAR」(PHP Extension and Application Repository)というサイトで、汎用的なパッケージが集積されています。
また、PECL(PHP Extension Community Library)というサイトでは、C言語で開発された拡張モジュールを公開しています。

同様製品(概要情報)

同様な機能を提供する製品として、次のようなものがあります。

商用製品:「ASP」など。

オープンソース製品:「Ruby」、「Perl」、「Python」など。

導入事例

大変高い注目度と将来性を見込まれており、中小規模からエンタープライズ規模まで、さまざまな領域で幅広く利用されています。

ライセンス情報

LICENCEPHPのライセンスは、「PHP License」です。このライセンスに従うことを条件として、ソースコードの改変と公開が許可されています。

ダウンロード

ダウンロードページ

PHPの最新情報を手に入れるには

月に一回のペースで有志により「PHP勉強会」というものが開催されていますので、こちらに参加されると新しい情報を手に入れることができます。

PHP勉強会のページ

情報提供協力

このページは、株式会社スタジオ・アルカナの協力により作成しました。

TOPに戻る

「PHP」参考情報 第1回 PHP入門まとめ(OSSエンジニア初心者向け)

(1)PHPとは

PHPとは、「PHP: Hypertext Preprocessor」を再帰的に略表記したもので、「Personal Home Page」に由来すると言われています。

Webサーバ上で動作するサーバサイドスクリプトのプログラミング言語で、ブラウザからの要求に対して、動的にページを作成して送り返すことができます。

PHPの特徴

・Webアプリケーション開発に特化している設計
・データベースとの連携処理が簡単
・プログラミング言語として文法が比較的単純であるため、プログラミング初心者に敷居が低い
・大規模開発にも採用されていて、エキスパートプログラマーの要求にも対応できる
・数多くのオープンソースフレームワークやライブラリが利用可能

一番の特徴として挙げたいのは、プログラミング言語として、「分かりやすい」という点です。プログラミング初心者であっても、長い解説書を読み込まなくても、ちょっと使い方を眺めれば、すぐに簡単なスクリプトを書けるようになります。オススメな言語です。

(2)初心者が参照するべき「お役立ちPHPサイト」のご紹介

Web業界で働くためのPHP入門(1):初心者がPHPプログラミングを始めるための基礎知識とインストール

このサイトでは、PHPの概要、特徴、歴史などを紹介しています。PCにPHP開発ツールをインストールして、ブラウザに「Hello,World!」を表示する手順を紹介しています。おすすめオープンソース軽量テキストエディターの紹介もあります。PHPがどのような世界なのか感触を得るための第一歩として、参考になります。
→Web業界で働くためのPHP入門(1):初心者がPHPプログラミングを始めるための基礎知識とインストール

PHPプログラミング初心者入門講座

このサイトのサブタイトルは、『PHPのインストール、mysql、関数、スクリプト、メール送信、勉強の仕方、上達のコツなどをズバリ解説!』となっていて、いろいろなことをズバリ解説してくれています。
開発環境準備の手順や、コードの書き方について、詳しい説明があります。『PHP HTMLの改行タグとソースの改行の違いについて』のように、基礎の基礎から、懇切丁寧に説明してくれています。キャプチャー画像も、多めに付いていて、大変分かりやすくなっています。
また、データベース「MySQL」と接続して、サンプルプログラムを作成していきます。
各段階が、細かいステップに分かれていて、1ステップずつ進んでいけば、PHPの基本が理解できてしまいます。とにかく、懇切丁寧な説明になっていて、非常に分かりやすい構成になっています。ズバリおすすめなサイトです。
→PHPプログラミング初心者入門講座

初心者用PHP入門

開発環境準備として、Webサーバ「Apache2」とPHPのインストール手順説明があります。
次に、「PHPの基本」として、PHP用語や基本ルールの説明、コメントの書き方、文法、配列、関数、演算子、制御構造などの各説明があります。
そして、サンプルコードの作成に進みます。アクセスログの表示、セッション管理などの解説があります。
このサイトでは、基本となる文法などを学ぶことができて、各項目の説明がコンパクトにまとめられていて、リファレンスとしても参照しやすくなっています。
→初心者用PHP入門

まとめ

以上、PHP初心者が参照しておくべき「お役立ちサイト」を3つ紹介しました。ご紹介したとおり、PHPは敷居が低く、とっつきやすいものです。すぐにできますので、これらのサイトを参照しながら、ぜひ、PHPに触って、PHPの世界、Webアプリケーションの世界を体験してみてください。

TOPに戻る

「PHP」参考情報 第2回 PHPの正規表現の使い方まとめ

(1)正規表現とは

正規表現とは、「アプリケーションソフトやプログラミングにおいて特別なルールを用いた文字列のパターンマッチを行う機能」と定義されます。

分かりやすく簡単にまとめると、「正規表現を使えば、複雑な文字列検索が一発でできる!」という便利機能のことです。

例えば、巨大な文書データの中から「12-12345」のような、「数字2桁+"-(ハイフン)"+数字5桁」のコードをすべて検索しなければならなくなりました。数字の部分は変わるので、真ん中にある"-"で検索してみると、「new-file」や「2016-01-25」などの文字列も検索されてしまいます。小さな文書データならなんとかなるかもしれませんが、巨大な文書データなら、膨大な数が検索されてしまい、大変な作業になってしまいます。そこで、正規表現検索できるツールを使って、検索条件として『"d{2}-d{5}"』と入力して検索すると、「数字2桁+"-(ハイフン)"+数字5桁」の文字列のみを一発で検索することができてしまいます。

このように、大変便利な機能なのですが、注意しなければならない点は、「正規表現検索できるツールやアプリケーションごとに、表現ルールの違いがある」ということです。例えば、Aというツールで正規表現を勉強して便利に使えるようになったとしても、Bというツールは、Aの表現ルールと違ったりします。基本的な思想は同じなのですが、日本の中でも日本語にいろいろな方言があるように、それぞれに違いがあるようなイメージです。そのため、自分が使うプログラミングやツール環境に合わせて、正規表現ルールを身につけることをおすすめします。

最初は、よく分からないアルファベットや数字がゴチャゴチャと並んでで、とっつきにくい感じがしてしまうかもしれません。一度に全部を覚える必要はありません。自分が検索したいような条件部分から、少しずつ覚えて使えるようになってくると、とても便利で、作業効率を一気に上げることができる状況も出てくるはずです。

正規表現という便利機能はプログラマー専用みたいに思われてしまいがちですが、そのようなことはなく、「文字列検索をする用事があるすべての人」が便利になるものです。

(2)PHPの正規表現がよく分かる「お役立ちPHPサイト」のご紹介

今回の特集は、「いまさら聞けないPHP」シリーズなので、PHPの正規表現がよく分かる、お役立ちサイトをご紹介します。

ゼロから正規表現を使えるようになるためのステップ

「1.入門 - 正規表現とは何なのかを知る」→「2.エディタで試す」→「3.プログラムで使ってみる(コピペ)」→「4.自分で正規表現を書いてみる」の4ステップで、一歩ずつ理解できて、自分で正規表現検索できるように解説してくれています。
→ゼロから正規表現を使えるようになるためのステップ

初心者用PHP入門

マッチング表現ルールと、ereg関数を使用したサンプルプログラムがあり、コンパクトにまとめられています。
→初心者用PHP入門

PHP&正規表現

「正しいURLかどうか調べる」、「メールアドレスかどうか調べる」、「半角カナが含まれていないか調べる」などのサンプルコードがあり、そのままコピペさせてもらって使うこともできますし、いろいろな実践的な条件での正規表現方法などの勉強もできる便利サイトです。
→PHP&正規表現

(3)まとめ

今回は、正規表現とPHP正規表現参考サイトをご紹介しました。正規表現は、プログラム開発環境がなくても、フリーのテキストエディタなどで、すぐに使うことができるものです。本当にいろいろな検索方法ができて便利です。食わず嫌いはもったいないので、ぜひ、一度、使ってみて、便利さを体験してみてください。

TOPに戻る

「PHP」参考情報 第3回 PHPの演算子の使い方まとめ

(1)PHPの演算子とは

まず、「演算子とは何か?」ということについて考えてみます。「演算子」という単語には、いろいろな意味合いが含まれてしまっていて、一言では言い表しにくい言葉になってしまっています。プログラミングにおける演算子に絞って、あえて、ごく簡単にまとめてみると『データに対する操作や比較参照を命令するための記号、および、演算内容』と定義することもできると思います。

各プログラミング言語に演算子がありますが、それぞれに多かれ少なかれ、使い方などに違いがあります。その違いは、表現する記号などの違いはありますが、どのプログラミング言語でも、基本的な使い方は、だいたい同じような感じになっています。今回はPHPの演算子について紹介していきます。

PHP演算子の主なカテゴリ

算術演算子:足し算や割り算などの四則演算など(17+3など)
代入演算子:変数に数値を代入する($x = 15など)
比較演算子:数値や変数などについて、比較を行う($a == "5"など)
加算子・減算子:変数aへの変数bセットと同時に、変数bを+1するなど($b++など)
論理演算子:AかつB、AまたはBなどの論理的な判定($a && $bなど)
※他のカテゴリもあります。

PHPプログラミングの基本となる部分です。難しそうな印象を受けてしまうかもしれませんが、以下の例を見ていただければ、決して難しいものではありません。

(2)PHPの演算子がよく分かる「お役立ちPHPサイト」のご紹介

PHP入門演算子

算術演算子、比較演算子、代入演算子、論理演算子などのよく使う演算子について解説しています。サンプルコードも付いていて、1ページにまとまっています。PHP初心者の方が、「演算子とは、こういう感じのものなのか」とPHP演算子の全体的なイメージを把握することができるような分かりやすい構成になっています。
→PHP入門 演算子

そふぃのPHP入門PHPの演算子

『算術演算子、代入演算子、比較演算子、加算子・減算子、論理演算子、文字列演算子、配列演算子、エラー制御演算子、演算子の優先順位』のように、演算子カテゴリごとに分かれていて、それぞれのカテゴリごとに丁寧に解説されています。各解説では、サンプルコードで具体的な処理がイメージできます。基本的な部分だけではなく、応用的な部分までカバーした解説があるので、より詳細に演算子について理解することができます。
→そふぃのPHP入門 PHPの演算子

初心者のPHP入門PHPの演算子

各演算子の使い方が、1ページにコンパクトにまとまっているため、リファレンスページとして参照することができます。
→初心者のPHP入門 PHPの演算子

(3)まとめ

以上、PHPの演算子について紹介しました。基本中の基本なので、よく使う演算子については覚えておかなければならない部分です。実際のサンプルコードなどで使い方を見ていただけたら、それほど難しいものではないということは理解していただけたかと思います。しばらくして、もう一度見返してみると、「こんな便利な演算子があったとは」「こんな便利な使い方があったとは」というような発見があるかもしれません。演算子を上手に使ってあげて、PHPプログラミングを楽しんでいきましょう。

TOPに戻る

「PHP」参考情報 第4回 PHPの配列、連想配列の初期化、追加、ソート

(1)PHPの配列(連想配列)とは

配列とは
まず、「配列とは何か?」について確認してみます。配列とは「複数の値をひとまとめにしたもの」です。例えば、ニワトリを飼っていて、どの日にタマゴを何個生んだのかを管理するプログラムを作ることになりました。31日分のデータがあります。31個もの変数を作って、1個ずつデータを入れるのは大変で、ソースコードがゴチャゴチャしてしまいます。そこで、$eggsという配列を作ってみます。すると、「$eggs[3] = 2」で、「3日目に2個生みました」とデータをセットすることができます。また、「$eggs[3]」を使えば、「3日目に何個生んだ?」についてのデータを取得することもできます。このように、配列を使えば、複数の値をまとめて管理や操作ができるようになるので、効率的にプログラミングできます。

配列の添字
どのプラグラミング言語であっても、ほぼすべて、配列の添字(インデックス、保管場所番号)は、0,1,2,3のようにゼロから始まります。そのため、上記の例の「$eggs[3]」は、実は4番目の保管場所ということになります。直感的に一致しているほうが分かりやすいので、0から31まで、32個のデータ保管場所を持つ配列を作って、1番目の保管場所($eggs[0])は使用しない。もしくは、明示的に1から始まる配列を作るなどして対応できます。

連想配列とは
上記の例のように、0,1,2,3のように添字が数値でゼロから始まるものが、一般的に『配列』と呼ばれます。一方、この添字には、数値ではなく文字列も使用できます。「$eggs[3日目] = 2」のような使い方も可能です。添字が文字列になっている配列が『連想配列』と呼ばれています。

(2)PHPの配列がよく分かる「お役立ちPHPサイト」のご紹介

10日で覚えるPHPのキソ(超基礎編) 第3回 配列(連想配列)

「超基礎編」というタイトル通りに、変数と配列の違いについての説明もあり、箱型のイラストを使用して、配列というものをイメージできるようにするところから、分かりやすく解説してくれています。配列について馴染みがなかったような方でも、理解することができるように書かれています。配列を作り、データのセット方法、参照方法、削除方法など、出力結果サンプルを多く使って、PHPの配列の基礎について理解していくことができます。
→10日で覚えるPHPのキソ(超基礎編) 第3回 配列(連想配列)

Web業界で働くためのPHP入門(5):PHPの配列変数、array、キー、多次元配列&var_dump

作成した配列に対して、var_dump()関数を使って、配列内の変数の詳細状態を確認する方法を紹介しています。2ページでPHPの配列について全体的に解説されていて、分かりやすくまとまっています。
→Web業界で働くためのPHP入門(5):PHPの配列変数、array、キー、多次元配列&var_dump

配列のソート

いろいろな種類があるソート方法のリファレンスになっています。「ソートの基準」、「キーと値の相関関係」、「ソート順」ごとにリスト化されているので、実行したいソート方法(関数)を簡単に探すことができます。
→配列のソート

(3)まとめ

以上、PHPの配列(連想配列)について、ご紹介しました。配列は、ソースコードをゴチャゴチャさせずに、分かりやすく機能的なプログラムを作るために大変便利な機能です。添字の使い方でいろいろなことができますし、また、2次元や3次元などの多次元配列もあります。この便利な配列を使いこなして、さらに、PHPプログラミングを楽しんでまいりましょう。

TOPに戻る

「PHP」参考情報 第5回 PHPの文字列の検索、置換、分割

(1)PHPの「文字列検索」

文字列検索とは、ある文字列の中に、対象となる文字列が含まれているかどうか検索することです。

strpos関数を使用します。『strpos("対象文字列", "検索文字列")』のように記述します。

例えば、「January,February,March,April,May」という文字列があり、この中に「February」が含まれているか検索するとします。『strpos("January,February,March,April,May", "February")』のように、strpos関数を使うと、対象の文字列が含まれているかどうか確認できます。また、文字列が含まれていた場合、最初に登場する位置を取得できます。

preg_match関数を使用すると、正規表現検索を行うことができます。正規表現については、PHPシリーズ第2回目でご紹介しているので、参考にしてください。
→PHPの正規表現の使い方まとめ

お役立ちPHPサイトysklog PHP文字列の検索(一致、有無)を調べる3つの方法

strpos関数の使い方について、初心者がつまずきやすい点もふまえて、分かりやすく説明してくれています。
→ysklog PHP文字列の検索(一致、有無)を調べる3つの方法

(2)PHPの「文字列置換」

文字列置換とは、「営業課、総務課、情報システム課」という文字列があった場合、「課」を「部」に置換して、「営業部、総務部、情報システム部」にするといったような処理のことです。

str_replace関数を使用します。『str_replace("検索文字列", "置き換え文字列", "対象文字列")』のように記述します。

また、array("営業", "総務")のように配列を作成して検索文字列として、置き換え文字列を「経理」とすれば、「経理課、経理課、情報システム課」のように一気に複数の置換処理を行うこともできます。

preg_replace関数で、正規表現を使用して置換処理を行うことができます。

お役立ちPHPサイトPHPBook 文字列の一部を他の文字に置き換える(str_replace)

str_replace関数の使い方について、関数の引数の説明があり、分かりやすい例と、分かりやすいサンプルコードでまとめられています。
→PHPBook 文字列の一部を他の文字に置き換える(str_replace)

(3)PHPの「文字列分割」

文字列分割とは、対象の文字列を、ある区切り文字で分割して、配列化することです。

explode関数を使用します。『explode("区切り文字", "対象文字列")』のように記述します。

『explode(",", "January,February,March")』とすると、「January」、「February」、「March」の3つの要素が入った配列を作成することができます。

お役立ちPHPサイトそふぃのPHP入門 explode

見やすく綺麗なページで、explode関数の使い方について、サンプルコードを使って丁寧に説明してくれています。
→そふぃのPHP入門 explode

(4)まとめ

今回は、PHPの文字列操作に関する紹介をしました。この他にも、文字列を操作するために用意されている関数は数多く存在します。また、それぞれの関数ごとにオプションも指定でき、正規表現や配列も使用できるなど、使い方まで含めると、相当の数となります。最初から一気にすべてを覚える必要はありません。まず、今回ご紹介した最も基本的な関数から徐々に覚えていって上手に使いこなせるようになると、PHPのおもしろさがますます広がっていきます。

TOPに戻る

「PHP」参考情報 第6回 PHPのコメントアウト

(1)コメントアウトとは

まず、コメントアウトについて復習します。コメントアウトとは、「プログラミングを行う際に、コメントアウト用の特定の記号を使用することによって、対象となる部分をコンパイラの処理対象外にすること」と定義できます。

簡単にまとめると、「ソースコードにメモ書きをしておくこと」です。処理内容の説明や、デバッグメモなどに使用します。また、一時的に対象となるプログラム部分をコメントアウトして、動作させないようにする使い方もあります。

(2)PHPコメントアウトの方法

PHPでは、3種類のコメントアウトの方法が使えます。

方法1(C++形式)『//』1行のみ行末(改行)までコメントアウト

<html>
<body>
<?php
//この部分がコメントになります。
?>
</body>
</html>

方法2(Perl形式)『#』 1行のみ行末(改行)までコメントアウト

<html>
<body>
<?php
#この部分がコメントになります。
?>
</body>
</html>

方法3(C形式)『/*』以降『*/』まで 間に改行が入ってもOK

<html>
<body>
<?php
/*
この部分がコメントになります。(コメント1行目)
この部分がコメントになります。(コメント2行目)
この部分がコメントになります。(コメント3行目)
*/

?>
</body>
</html>

(3)PHPコメントアウトの注意点

注意点1『//』と『#』について 行末までというのは改行コードまで

「1行のみ行末(改行)までコメントアウト」と説明しましたが、この行末までというのは、エンターキーが押された改行コードまでのことです。
htmlエディタなどで、1行がとても長い場合、右端までいって、折り返して表示されることがありますが、その部分が行末ということではありません。

注意点2『/*』『*/』のネスト(入れ子状態)はエラー

『/*』と『*/』の中に、『/*』と『*/』を記述すると、エラーになります。
<?php
/*
(コメント1行目)

(コメント2行目) /* こうしてしまうとエラーになります */
(コメント3行目)
*/

?>

注意点3PHP用コメントアウトはPHPブロック内で

PHP用のコメントアウトは、PHPブロック内で使用します。
PHP用のコメントアウトのやり方 と HTMLのコメントアウトのやり方 が混乱して混ざりがちです。注意しましょう。
<html>
<body>
<!--HTMLのコメント-->
<?php
//PHPのコメント
?>
</body>
</html>

(4)まとめ

今回は、PHPのコメントアウト(メモ書き)の方法についてご紹介しました。コードではなく、何も処理をしないコメント部分ですが、実は、とても大事です。自分で書いたコードであっても、しばらくすると、何の処理をしているのか分からなくなるということは、よくあります。普段から、分かりやすいコメントを書いておく習慣を身に付けておくことは有効であると思います。分かりやすいコメントが書いてある、分かりやすいコードを書くように意識していきましょう。

TOPに戻る

「PHP」参考情報 第7回 PHPの比較演算子の使い方

(1)PHPの比較演算子とは

比較演算子とは、左辺(左の値)と右辺(右の値)を比較して、条件に当てはまればtrue(真)を返します。条件に当てはまらなければfalse(偽)を返します。
数値や文字列の比較だけではなく、object型やarray(配列)型などの比較も行えます。

if文などの分岐条件などに使用します。
$num = 30;
 if ($num == 30){
  print "変数numの値は30と等しいです";
 }

比較演算子としては、
 等しい「==」「===」
 等しくない「!=」「<>」「!==」
 より大きい「<」
 以上「<=」
 より小さい「>」
 以下「>=」
があります。

「==」と「===」の違い、また、「!=」と「!==」の違いは、値だけで比較するのか、データ型まで含めて比較するのか、の違いです。

(2)PHPの比較演算子の使い方がよく分かる「お役立ちPHPサイト」のご紹介

PHPBook 比較演算子

比較演算子の使い方について、分かりやすくまとめられています。「==」と「===」の使い方についても、説明があります。
→PHPBook 比較演算子

PHPBook 三項演算子

PHPには、三項演算子という書式も用意されています。
『条件式 ? 式1 : 式2』のように記述して、条件式が評価された結果、trueであれば式1、falseであれば式2を返します。
三項演算子は使いなれてしまえば、短縮形式で書けるため便利なのですが、慣れるまではif文で対応できます。しかし、サンプルスクリプトなどに登場してくることも多いので、一応チェックしておくことをおすすめします。
→PHPBook 三項演算子

(3)PHPの比較演算子使用時の注意点

代入演算子「=」 と 比較演算子「==」「===」
代入演算子「=」は、値を変数に代入するものです。比較演算子「==」「===」と間違えて、代入演算子「=」をif文の条件式に使用してしまうと、思い描いていない結果となります。
初心者が陥りやすい罠として、注意が必要です。

比較演算子「==」 と 比較演算子「===」
「==」と「===」では、結果が異なることがあります。
例えば、『if ("あいうえお" == 0) 』の結果はtrueになってしまいます。そして、『if ("あいうえお" === 0) 』の結果はfalseになります。
これは、PHPの暗黙的自動型変換によって起こる現象です。
こちらのページで、PHPの暗黙的自動型変換について、サンプルコードを使って紹介しています。
→Qiita "あいうえお"(文字列) == 0が真の謎

ポイント! 比較演算子は「===」を使いましょう
比較演算子「===」を使うと、データ型まで一致しているのかまで比較するため、「==」より厳格に比較できます。比較演算子は「===」のみ使うようにすると安全度が高まります。
また、「==」は暗黙的データ型変換処理を内部で実行するためパフォーマンスが落ちます。暗黙的データ型変換処理を行わなずに比較をする「===」のほうが、処理が高速になります。

(4)まとめ

今回は、比較演算子について紹介しました。暗黙的データ型変換があって、複雑そうな印象を受けてしまうと思いますが、「===」のみ使用することで、かなりシンプルに考えることができるようになると思います。if文の条件記述部分は、バグが入り込みやすいところなので、慎重に落ち着いて、そして、楽しみながらコードを書いていっていただけたらと思います。

TOPに戻る

「PHP」参考情報 第8回 PHPの日付の計算(加算・減算)

(1)PHPの日付計算(加算・減算)のやり方

日付計算例(n日後)

//基準日「2016-02-15」を作成して、3日後の日付を求めます
$date = new DateTime("2016-02-15");
$date->modify('+3 days');
//→2016-02-18
echo $date->format('Y-m-d');

日付計算例(n日前)

//基準日「2016-02-15」を作成して、10日前の日付を求めます

$date = new DateTime("2016-02-15");
$date->modify('-10 days');
//→2016-02-05
echo $date->format('Y-m-d');

上記のようにして、modifyを使用すれば、簡単に、n日後、n日前の日付を求めることができます。

modifyで、日付の計算として使えるものは、以下のものがあります。
年 : year
月 : month
週 : week
日 : day

さまざまな日付計算方法

日付計算には、この他にも、さまざまな手段と方法が用意されています。
こちらサイトでは、日付妥当性チェック(「2016-02-32」はエラー)、うるう年チェック、任意の年月の月末日の求め方、日付比較、日付の差計算など、日付計算の基礎が分かりやすくまとめられています。
→のぶろぐ PHPによる日付・時刻・時間の計算・演算

日付表示フォーマット

サンプルコードでは、「echo $date->format('Y-m-d');」のように日付を出力しましたが、「Y-m-d」の部分を変更すると、いろいろな日付フォーマットで出力できます。例えば、「2016年(西暦4桁表示)」or「16年(西暦2桁表示)」、「2月(ゼロ埋めなし)」or「02月(ゼロ埋めあり)」など。
こちらのサイトは、日付フォーマットのリファレンスとして参照できます。
→そふぃのPHP入門 日付・時刻関数 date

(2)PHPの日付計算における注意点 先月翌月計算

日付計算において注意が必要なポイントは、先月計算・翌月計算です。

//翌月計算例 問題発生パターン
//基準日(2016-03-31)を作成して、1ヶ月後の日付を求めます
$date = new DateTime("2016-03-31");
$date->modify('+1 month');
//→2016-05-01
echo $date->format('Y-m-d');

「2016-03-31」の1ヶ月後が、「2016-05-01」と計算されてしまいます。これは、「2016-03-31」の1ヶ月後が「2016-04-31」と計算され、4月は30日までしか存在しないため、+1して「2016-05-01」になってしまっているという理屈です。

こちらのサイトでは、この問題についての解説および対策法を、丁寧に解説しています。
→bushimichiの日記 PHPで、先月、翌月などを扱うときの注意

(3)まとめ

今回は、PHPの日付計算(加算・減算)について紹介しました。日付計算には、日付だけではなく、時間計算も含まれてきます。日付計算関連の関数はたくさん用意されていて、いろいろなコードの書き方があります。まず、基本となる形を身に付けて、そこから、いろいろな関数を使って、簡潔なコードを書けるようになっていくと、知識と技を広げていくことができます。

TOPに戻る

「PHP」参考情報 第9回 PHPの構文チェック

(1)さまざまなPHP構文チェック方法の紹介

PHPの構文エラーをチェックする方法には、いろいろな手段があります。

コマンドライン

『php -l test.php(ファイル名)』のように「l(エル)」オプションを付けて打てば、構文チェックが行われ、エラー内容が表示されます。
エラーが表示されない場合は、設定ファイル(php.ini)内で、以下のように設定されているかを確認してください。
display_errors = On ;
error_reporting = E_ALL ;

Chrome拡張機能 「PHP Console」

WebブラウザであるChromeの拡張機能で、PHPの構文チェックを行えます。Chromeのコンソールでエラー内容を確認することなどができます。
→PHPのエラーなんかをブラウザで確認できるChrome拡張「php-console」

Chrome拡張機能 「Chrome Logger」

構文チェックだけではなく、デバッグ作業を便利にしてくれるChrome拡張機能です。サーバサイドプログラムのログ出力を行えるのが特徴です。PHPのみではなく、多くの主要な言語もサポートしています。
→Chrome Loggerを使ってPHPのデバッグをコンソール画面から確認してみる。

PHPコード構文チェックサイト

構文チェックをWebサイト上で行うこともできます。
対象となるPHPのバージョンを選択して構文チェックを行うことができます。エラー部分が、赤字黄色ハイライトで表示されます。
※コードがネット上に流れることになります。クリティカルなコードの場合は十分にご注意ください。
→PHPコードの構文チェック

フロントエンド用動作テストサイト

ブラウザ上でコードの動作テストを行えるサイトが、いろいろと存在しています。コードを保存しておけるサイトなどもあり、テスト用のみではなく、ちょっとしたコーディング環境としても利用できます。
※これらについても、コードがネット上に流れることになります。クリティカルなコードの場合は十分にご注意ください。
→ブラウザー上でサクッとコードの動作テストができるWebサイトいろいろ

(2)統合開発環境でのPHP構文チェック

テキストエディタでコードを作成して、以上のようにして構文チェックを行うこともできますが、煩雑になりがちで、効率が良くない面もあります。
統合開発環境(IDE、Integrated Development Environment)を使用すれば、構文チェックはもちろんのこと、強力なデバッガーなども搭載しているため、効率的なコーディングを行うことができます。
メジャーな開発環境としては、「Eclipse」や「NetBeans」などがあります。これらは無料で使用できるので、試しに使ってみて確認してみるとよいと思います。

こちらのサイトでは、PHPがサポートされている主要な統合開発環境を紹介しています。
→あなたのおすすめは?PHP統合開発環境

「PhpStorm」は、PHPに特化した統合開発環境です。有償製品ですが、30日間は無料で使えるということなので、試してみるのもよいかもしれません。
→PHP書いている人は、絶対にPHPStormを使うべき

(3)まとめ

今回は、PHPの構文チェックについて紹介しました。PHPのコーディング方法、構文チェック方法、デバッグ方法は、多くの種類があります。いろいろな方法を試していきつつ、自分にピッタリと合うスタイルを見つけていきながら、PHPを楽しんでいきましょう。

TOPに戻る

「PHP」参考情報 第10回 PHPの変数と宣言方法

(1)PHPの変数と宣言

変数とは

簡単にまとめると、データを格納しておくための箱のようなものです。箱(変数)に付けた名前が「変数名」で、箱(変数)の中に入っているデータを「値」と呼びます。変数の値を確認したり更新したりしながら、コードを作成していきます。

変数宣言とは

データを格納する箱(変数)を作成することです。「変数定義」とも呼ばれます。

PHP変数の特徴 1データ型の指定が不要

一般的なプログラミング言語では、変数宣言の時に、データ型の指定が必要となっています。数値型、文字型、日付型などです。
しかし、PHPでは、データ型の指定は必要ありません。どのようなデータ型でも格納できます。データ型は状況に応じて自動的に解釈されます。

PHP変数の特徴 2変数宣言が不要

一般的なプログラミング言語では、変数を使用する場合、事前に、または、同時に変数宣言が必要です。
string animal;
animal = "カピバラ";
または
string animal = "カピバラ";
しかし、PHPでは、事前の変数宣言は不要です。変数に値を入れるだけでOKとなります。
$animal = "カピバラ";

PHP変数の命名規則

変数名についてのルールがあります。
1.先頭には必ず「$」を付ける必要があります。
2.「アルファベット」、「数字」、「_(アンダーバー)」、「0x7F~0xFFまでのコード(ひらがな、カタカナ、漢字など)」を使用できます。
※記号として使用できるのは「_(アンダーバー)」のみです。
※「$動物」のように漢字名変数も使えますが推奨されません。
3.1番目の文字は、数字以外であること。
※「$1animal」は無効です。
4.アルファベットの大文字/小文字を区別します。
※「$animal」と「$Animal」は、別の変数として扱われます。バグの原因となりがちです。注意が必要です。
5.予約語は使用できません。PHPの関数名やコーディングキーワードなどのことです。
※「$echo」や「$if」などは使えません。

参考サイト

PHPの変数の使い方について分かりやすく解説してくれています。
→PHP入門編 - 変数とは

(2)PHPのスコープとローカル変数とグローバル変数

PHPの変数には、変数が有効となる範囲(スコープ)があり、「ローカル変数」と「グローバル変数」があります。
<?php
$animal_scope1 = "カピバラ1"; //スコープ1

function test(){
$animal_scope2 = "カピバラ2"; //スコープ2
echo $animal_scope1; //★エラー!表示されない
echo $animal_scope2; //表示される
};
test();

echo $animal_scope1; //表示される
echo $animal_scope2; //★エラー!表示されない
?>
関数testの外で宣言された「$animal_scope1」は、関数testの中では参照できません。
関数testの中で宣言された「$animal_scope2」は、関数testの外では参照できません。
「$animal_scope1」と「$animal_scope2」は、ローカル変数となります。

グローバル宣言

グローバル宣言を行うことにより、スコープ外の変数を参照できます。
<?php
$animal_scope1 = "カピバラ1"; //スコープ1

function test(){
global $animal_scope1; //★グローバル変数化宣言
echo $animal_scope1; //表示される
};
test();
?>
「global $animal_scope1;」のようにグローバル変数化宣言することにより、変数「$animal_scope1」はグローバル変数となり、test関数の中でも参照できるようになります。

$GLOBALS

スコープを超えるための、もう1つのやり方として、「$GLOBALS」があります。
<?php
$animal_scope1 = "カピバラ1"; //スコープ1

function test(){
echo $GLOBALS["animal_scope1"]; //表示される
};
test();
?>
「$GLOBALS["animal_scope1"]」のように使用することで、どこのスコープの変数であっても参照できます。

(3)まとめ

今回は、PHPの変数、宣言、スコープ、ローカル変数、グローバル変数について紹介しました。PHPの変数は、宣言せずに使えてしまうため、ある変数を参照しようとして、よく似た名前の別の変数を作ってしまうことがないように注意が必要です。変数に関するルール、スコープ範囲にも注意しながら、コーディングをしてください。

TOPに戻る

※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

PHP最新TOPICS

【講演資料の一部を公開】6/2「発注者側が理解するべき、CI(継続的インテグレーション)成功の秘訣と、PHPの脆弱性問題」(2017年08月16日 15:40)

2017年06月02日(金)18:00~19:30 Tビル1階セミナールーム(品川区)にて「発注者側が理解するべき、CI(継続的インテグレーション)成功の秘訣と、PHPの脆弱性問題」と題したセミナーが開催されました。 当日は、予定の講演+ゲストスピーカーとして、株式会社アスタリスク・リサーチ ロバート・ドラーチャ氏による「SHIFT LEFT システムの品質と安全性を劇的に向上させる アプリケー...

無料資料プレゼント

フォレスターによる調査レポート「サービスとしてのデータベース (2017 年第 2 四半期)」AWS社提供

講演資料を見るには、 プライバシーポリシーに同意して、送付先メールアドレスをご入力しご請求ください。

またご入力いただきました情報は、当該資料の作成・提供企業とも共有させていただき、当社及び各社のサービス、製品、セミナー、イベントなどのご案内に使用させていただきます。

本資料を見るには次の画面でアンケートに回答していただく必要があります。



  • PHPサイド(PHP)@スタジオ・アルカナ
  • OSSNEWSに広告を掲載しませんか?

facebook

twitter