【初心者向け】PHPの基礎・入門講座

作成日:2019.06.08 最終更新日:2019.08.22

PHPエンジニアが教えるPHPの基礎

PHPを使えるようになりたい!けど、何から勉強すればいいかわからないなぁ。入門レベルの人が知っておくべき知識を教えて~!

この記事では、これからPHPを勉強する超入門者の方を対象に、PHPの基礎中の基礎をわかりやすくお伝えしたいと思います。

「最低限知っておくべき基礎知識」「横文字の意味」「PHPの書き方、使い方」などが中心ですが、現役PHPエンジニアの現場での経験も踏まえてお伝えします。

このページの内容を知っておけば、サービスやアプリケーションづくりをサクッと始められるようになるでしょう。

逆に「プログラミングの基礎はわかってるよー」という方には退屈な内容となるので注意してください。

作りながら学べるのが1番いいんだけど、移動中で作れないとか、知識としてPHPについて学びたい・復習したいってときに使ってもらえると嬉しいぜ!
参考書の内容をミッチリ詰め込んだからかなり長い内容になっているよ!
ブックマークしたりノートをとりながら毎日読み進めてもらえると、効率的だ!
目次から気になるところに飛んでくれ!

プログラミング学習は難しく考えすぎないことが超重要!

プログラミングは難しくない

まず勉強を始める前に知っておいて欲しいのが、プログラミング学習でとても重要なことは「あまり難しく考えない」ということです。

なぜかというと、あまり難しく考えると楽しめずに挫折してしまうから。

実際、9割の人がプログラミング学習を挫折してしまうと言われています。

せっかく始めたのに、もったいないですよね?

プログラミング学習は、継続すれば誰にでもできるようになります。

10代、20代の若い人、頭がいい人だけでなく、30代、40代、50代、偏差値が低い人でもできるようになるので安心してください♪

もちろんあなたもできるようになります。

実際、80代からプログラミングを勉強してwebサービスを作った人もいますからね!

まず、これから勉強する人は「プログラミングは誰でも絶対できるようになる!」ということを心にとめておいてくれ!
PHPはC言語とは違って初心者も取っつきやすいから、諦めずに学べば必ず上達するからね!

なぜ「プログラミングは誰にでもできるようになる」と断言できるのか?

「プログラミングは誰でもできるようになる」と聞いたことはないでしょうか?

なぜ誰にでもできるかというと、プログラミングとは「コンピューターに命令するだけ」だからです。

極端な話、あなたが目覚まし時計に「7時に起こして!」とタイマーをセットすることもプログラミングなのです。

これならできそうな気がしませんか?

プログラミングとは、日常生活でやっていることをプログラミング言語を使って表現するだけ。

あとは書き方を覚えてしまえばOKですね!

「働ける程度のプログラミングは誰にでもできる」というのは、こういうことなのです。

なので、PHPの勉強をこれから始めるあなたも、「プログラミングを学ぶ」という大きな概念より「コンピューターへの命令の仕方を学ぶ」くらいの軽い気持ちで勉強するのが良いでしょう。

あまり難しく考えず、楽しく、必要なものだけ、適切な順番で学んでくださいね♪

プログラミングを勉強するって考えると「おほー!難しそうだ!自分にできるかな?」って不安に感じちゃうよね。

そうだね。けど、本当はそこまで難しくないよ。誰でも必ずできるようになる。
初めから気合いを入れすぎると挫折しちゃうから気を付けよう!

そっか、諦めずに勉強を続ければできるようになるんだったね。

そうそう!1年で完璧にマスターできるようなものではないけど、たった数か月で企業に雇ってもらえたり、自分でサービスを作れるレベルにはなれるからね!
しかも、プログラミングのすべてを学ぶ必要はない。必要なものだけ学べばOKだ!
難しく考えすぎずに、まずは自分のペースで勉強を継続すると心に誓おう!

OK!ここに今誓おう!
で、PHPってどんなプログラミング言語なの?

PHPってどんなプログラミング言語なの?

PHPはサーバーサイドのプログラミング言語

PHPはサーバーサイドスクリプト言語です。

PHPとは、「ハイパーテキストプリプロセッサ(Hypertext Preprocessor)の略です。(「略してないじゃん」と思ったかもしれませんが、もとはPersonal Home Page Toolsという名前でした)

PHPはサーバーサイドスクリプト言語※と呼ばれる言語で、あなたのコンピューターの中ではなく、ウェブサーバーで働いてくれるのが特徴です(レンタルサーバーなどのコンピューターで働きます)。

【PHPの動作の流れ】 

サーバーとはサービスを提供する人・モノ(Service+er「~の人・モノ」)のことで、あなたのパソコンはクライアント(お客さん)ということになります。(例えば、ウォーターサーバーは水を提供するモノであるように、ホームページを提供するモノがwebサーバーです)

つまり、クライアント(ユーザー)から「このページを見たいからクリックしたら情報を表示してね!」などの要求(リクエスト)に答えるために反応(レスポンス)して動いてくれるのがPHPなのです。

そのため、PHPなどのサーバーサイドスクリプトを使ってプログラミングする人を、サーバーサイドエンジニアといいます。

逆に、あなたのパソコンでwebサイトに動きをつけるための言語を使う人はフロントエンド(クライアントサイド)エンジニアです。

※スクリプト(script)とは、人間の文字をコンピューター語に変換せずに使える便利な言語です。本来コンピューターは人間の言葉は理解できません。「コンパイル(変換)」という工程を人間がおこない、コンピューターに意味を伝える必要があったのですが、スクリプト言語が開発されてからはコンパイルをコンピューターが自動でやってくれるようになりました。

へぇ。PHPはサーバーで動くんだね。キャバコからすると、サーバーってなんなの?って感じだけど(笑)

例えば、いつでも冷たい水を提供してくれるウォーターサーバーってあるでしょ?あれもサーバーなんだ。
で、ホームページを提供してくれるのがWebサーバーってわけ。目に見えないから理解しにくいけど、コンピューターの中にウォーターサーバーみたいな機械があるって思ってもらえればいいよ。

なるほど!サーバーって聞きなれないから、さっそく難しく考えちゃったよ!

リラックスしよう!
Webサーバーにあるデータを呼び出したり、保存したり、計算したりするように命令するのがPHP(サーバーサイド言語)の役割って感じで捉えておいてね!

PHPはWebとの相性が良い

phpはWebとの相性が良い

PHPは、Webとの相性が非常に良いため、WebサイトやWebアプリケーションに多く使われています。

Webブラウザ(Googlechromeやsafariなど)上に表示される文字や画像などは、多くの場合HTMLというwebサイトの骨格を作る言語で表示されますが、PHPはHTML文書の中に部分的に埋め込んで記述することができるからです。

HTMLに埋め込める結果、表示内容や機能を状況に応じて変化させることができるので、Webとの相性が良いということは覚えておきましょう。

Webとの相性が良いとどんなメリットがあるのか?

それは、場所を選ばずに働きやすいこと。

今話題のリモートワークもしやすい数少ない言語なのです♪

サーバーサイドの言語には、他にもRubyやJava、Pythonなどがありますが、この中でもWebとの相性が圧倒的に良いと覚えておきましょう。

PHPを習得すれば、ノマドワークみたいな働き方ができるってことでいい?

必ずってわけではないけど、PHPならノマド、リモートワークが可能だね。
「企業に属さず世界中を旅してます!」「好きなところに住んでいます♪」みたいなプログラマーは、PHPで仕事をしていることが多いよ。
僕もPHPを使ってて、今現在もフリーランスとして自由に働いてるぜ♪

キャバコもそれしたーい!早起き、出勤、満員電車はやだぁ!

よしよし、おとなしくPHPを学べ!

PHPでこんなサービスやアプリケーションを作れます。

PHPで作れるもの

PHPはとても汎用性の高い言語です。

Webとの相性も良いため、メルカリやぐるなびなどのウェブサービス、BASEといったショッピングサイト構築ツール、世界で最も使われているWordpressというCMS(ブログのようにウェブサイトを作れるツール)などに使われています。

ウェブ上で何かを作りたい人にとって、PHPが使えれば様々なものを作れるようになります。

きっと、あなたの頭の中にあるアイデアも形にできるはず。

また、汎用性が高いため仕事には困らないのもPHPを学ぶメリットとも言えますね!

ワクワクしながら勉強を進めていきましょう!

メルカリにも使われてるの?キャバコもメルカリ良く使うよ!

メルカリみたいななんでも売れるサイトをPHPで作れるって考えると、かなり夢が膨らむよね!
あとはやっぱりWordpressに使われてるってのが重要かな。
WordpressにPHPが使われてる限り、PHPエンジニアの仕事は無くならないね♪
「Wordpressサイトをカスタマイズしてほしい」みたいな人はメチャクチャ多いからさ。

仕事に困らない、自由に働けるPHPって最強じゃん!

【PHPの特徴まとめ】

  1. PHPはWebサーバーで動く「サーバーサイドスクリプト」である
  2. Webとの相性が良いからリモートワークなんかも実現できる数少ない言語
  3. メルカリやWordpressなどの超有名サービス・CMSなどにも使われているため、仕事に困らない

PHPを使うためのたった2つの準備

PHPはとても魅力的なプログラミング言語ですが、PHPを動作させるには準備が必要です。

とはいえ、やることはたった2つなので、チャチャっと済ませてしまいましょう!

エディターをちゃちゃっと導入しよう!

PHPを書くにはテキストエディタを用意する必要がある

PHPを使うには、PHPを書く「エディタ」と呼ばれるツールを用意する必要があります。

プログラミングのイメージ通りの、黒い画面のやつですね!

今すぐ導入できない方も「PHPを使うにはエディタを用意する必要があるのか!」くらいに覚えておいてくださいね。

導入はとても簡単にできるので安心してください。

どのエディタを使っても問題ありませんが、Visual Studio codeというエディタがおすすめです。

マイクロソフト社が提供している無料エディタであること、拡張機能が充実しているため使いやすいこと、Web開発の現場で必須となっている「git hub」との連携もしやすいことなどがおすすめの理由です。

導入方法については、こちらのページに詳しく解説されています。

ほかにも「Atom」や「Sublime text」など様々なエディタがあるので、お気に入りのものを使いましょう!

どれを使っても問題はありません。

実はプログラミングは「メモ帳」とかにも書けるんだけど、使いにくいから必ず専用のエディタを使おう!
ほとんど無料で使えるから、安心して導入してくれ!
ぼくもVisual Studio codeを使ってるぜ!

PHPを動かすにはXAMPPを導入する必要があるよ!

phpにはxamppを導入する必要がある

PHPを動かすにはPHPのソフトウェアやウェブサーバー、データベースサーバーなどを用意する必要があります。

ですが、これらをすべて自分で用意するのはハードルが高いですし、その必要はありません。

なので、これからPHPを勉強する人が用意するものはたった1つ!

「XAMPP(ザンプ)」とよばれるパッケージを導入すればOKです!

XAMPPとは、「Apatch(Webサーバー)」「My SQL(データベース)」「PHP」「Perl」というPHPの動作に必要なソフトウェアなどをひとまとめにしたもので(頭文字をとっています)、これを導入すればあなたのパソコンでPHPを使ったサービスを作ることができます。

MacでもWindowsでも使えるので、まずは導入するところから始めてみましょう!

XAMPPをインストール・設定する方法

PHPを使う際は、毎回XAMPPを起動させる必要があるので、忘れないようにしてくださいね!

【PHPを使うための準備】

  1. テキストエディタを用意する
  2. XAMPPを導入する

入門者必見!PHPの基本ルール

PHPを書く場所はHTML文書の中!

PHPは、基本的にHTML文書の中に記述していきます。

もっと言うと、HTML文書のbodyタグの中に記述するのが一般的です。

PHPを学ぶにはHTMLを知っておかなければなりませんが、ここでは知っている前提でお話しています。

もし「HTMLはまったくわからない!」と言う人は、以下のコードをエディタに貼り付け<body></body>の間に記述するということを覚えておいてください。

<DOCTYPE html>
<html>

<head lang = "ja">
    <title></title>
    <meta charset = "utf-8">
</head>

<body>
   この中にPHPを書いていく。
   何行になってもOK!
</body>

</html>

PHPはこうやって書くのが基本

PHPはHTML文書の中に書くとお話ししましたが「ここはHTML、こっちはPHP」とコンピューターに判断してもらわなければ、思い通りに表示できません。

そこで、「ここからここまではPHPだよ!」という構文をつくり、その中にプログラムを書いてあげる必要があります。

書き方はとても簡単。「<?php」と「?>」でプログラムを囲うだけです。

<?php
    ここにプログラムを記述;
?>

基本はこの中にプログラムを書くということを覚えておきましょう!

「<?php」の前はHTMLで、「?>」のあともHTML文書となります。

ちなみに、<?php ?>は何度でも記述できます。

プログラムを書いたら、「このプログラムはここで終わりですよ~」とコンピューターに伝えるために「;(セミコロン)」を付けます。

付け忘れるとうまく表示されないので注意してくださいね!

PHPは「ここからPHPのプログラムを書くよ」と「<?php ?>」で伝えて、プログラムを書いたら「プログラムはここで一区切りだよ!」と「;(セミコロン)」で伝えるということを覚えておこう!

なるほどー!こうやって書けば、「PHP使ってるよ♪」ってコンピューターに伝えることができるんだね♪意外と簡単!

文字列はシングルクォーテーションで囲う

PHPで文章(文字列)をブラウザに出力させる場合、シングルクォーテーション(’)で囲うのがルールです。

また、1などの数字を数字として扱う場合はそのまま記述すればよいのですが、文字として数字を使う場合はシングルクォーテーションで囲みます。

<?php
    'こんにちは';

    10 //これは数字です。

    '10' //これは数字ですが、文字として認識されます。
?>

ダブルクォーテーション(”)でも良いのですが、ダブルクォーテーションはあとで説明する「変数」を変数値に変換して表示する特性がある高機能な処理をするため、読み込みスピードが遅くなる場合があります。

なので、ただ文章を出力するだけの場合はシングルクォーテーションを使いましょう。

例えば「こんにちは」ってブラウザに表示する時は「’こんにちは’」って記述するんだ。
シングルクォーテーションがないと、「ん?これはプログラムなのかな?」ってコンピューターが混乱しちゃうからね。
文字をブラウザに表示する時はシングルクォーテーションを使うことを覚えておこう!
ちなみに、文章と文章をつなげるときは「.(ドット)」でつなぐことができるぜ!

基本構文を実際に使うとどうなる?

では実際にPHPの基本構文を使って、ブラウザに表示させてみましょう!

ここでは基本中の基本である[echo]を使ってみます。

echoとは「ブラウザに表示してね!」という命令文で、文字列や計算結果などをブラウザに表示する時に使うものです。

ブラウザに「こんにちは」と表示するには以下のように書きます。

<?php
    echo 'こんにちは'; 
?>

たったこれだけでコンピュータが「これはPHPで書かれた文書だな!なぬ!?「こんにちは」と表示してほしいだと!?よかろう。」という動作をしてくれます。

実際に表示してみると、以下のように表示されます。

【実行結果】

こんにちは

「HTMLで書けばいいじゃん!」と思ったかい?僕も思ったぜ(笑)

ただ、ここでは「PHPを動かしてみる」という疑似体験をしてほしいから許してくれ!

ほえ~。こんな感じで表示されるんだね!
自分が書いたプログラムが思い通りに表示されたときは気持ちよさそう!

拡張子は「.php」になるよ!

PHPの拡張子は.php

PHPを記述したファイルは、PHPの拡張子(かくちょうし)である「.php」という文字をファイル名の後ろに付けます。

拡張子とは、「どんなルールで記述されたファイルなのか?」をコンピューターが判断するために必要なものです。

あなたも見たことがあると思いますが、ワードで作った文書は.doc、エクセルなら.xlsx、htmlなら.html、jpeg画像なら.jpegという決まりがあります。

PHPなら.phpになります。

例)index.php

ちなみに、html文書だったものにPHPを記述する場合も「.php」に変更する必要があります。

「拡張子」って言葉は覚えておこう!
これから色々なプログラミング言語に触れていくと思うけど、それぞれ拡張子が違うからね。

「コメントアウト」は絶対にマスターしておこう!

プログラミングを始める上で、「コメントアウト」は絶対に習得しておく必要があります。

なぜなら、ソースコードを見ただけでは「このプログラミングはどんな命令をしているの?」ということが一瞬ではわからないことがよくあるからです。

特に他の人が見たときにわからないと、実装した人に直接質問しに行くといった無駄が発生してしまいます。

そんなときに「メモ書き」が残っていたらすぐにわかり、親切ではないでしょうか?

そう、コメントアウトは「メモ書き」のように使えるものなのです。

コメントアウトはプログラムには反映されずただのメモ書きのように使えるので、ぱっと見ではわかりにくいプログラムを、一瞬でなにを命令しているプログラムなのかを伝えられる便利なものです。

以下の画像の薄い青の部分がコメントアウトされている範囲です。

<?php
    // 'こんにちは'をコメントアウトしています。 echo 'こんにちは' ;
  /* 'こんにちは'をコメントアウトしています。 echo 'こんにちは' ; */
    #  'こんにちは'をコメントアウトしています。 echo 'こんにちは' ;
?>

このように、PHPでは基本的に「//(スラッシュ)」2本を記述されている部分がコメントアウトされます。

※エディタによって色が変わります。

複数行をコメントアウトする場合は「/* */」で囲ったり、行頭に「#」を付けることでもコメントアウトが可能です。

コーディングする際は必ず使うものなので、やり方を身につけましょう。

キーボードショートカットで簡単にコメントアウトはできます。

【コメントアウトのキーボードショートカット】
Windowsなら「Ctrl」+「/」
macなら「Command」+「/」

範囲を指定してコメントアウトすれば、そのプログラムをエディタ画面上に残しつつ、ブラウザには反映させないということも可能ですよ。

1つたしかなことは、コメントアウトを使わないと同僚に嫌われます。

コメントアウトが多すぎてもNGですが、複雑なプログラミング箇所に説明を入れたり、複雑になってしまった理由などを書いたりすると良い感じです。

たしかにメモ書きを残してあげた方が親切だね!

自分で「このプログラム何だっけ?」みたいになることもあるしね。
あと、プログラマーは仕事量が多いから「いかに効率的か」という部分を重視する傾向があるから、コメントアウトをして一瞬で分かるようにしてあげよう!
ページの保守(修正など)のときにも役立つよ。

コメントアウトしないと、お昼ご飯を一人で食べるハメになりそうだね…。

PHPについて項目ごとに勉強していこう!

さて、ここからはPHPの基礎を項目ごとに勉強していこう!
ここで紹介しているものは絶対に覚えておかないとサービスとかを作れないから、何度も読み返してね!
まだ入門レベルだから、イメージとしてつかんでもらえればOKだ!

1.変数(データを入れる箱)

プログラミングでは、「変数」というものをよく使います。

「変数」とは、プログラムの処理で使うデータを入れる「箱」のことです。

変数とはデータを入れられる箱のこと

「変数」という言葉に惑わされず、「データを入れる入れ物なんだなぁ」くらいにイメージしてください。

英語で変数は「variable」で「var」と略されることが多いです。

数字だけでなく、文字や計算式なども変数に入れることができます。

なぜ変数なんてものが存在するのかは、3つのメリットがあるからです。

【変数を使う3つのメリット】

  1.  何を表しているか分かりにくい計算などに名前をつけられる
  2.  同じデータを何度も使い回せる
  3.  修正したい時は変数を修正すれば何度その変数を使っていても1度の修正で済む

例えば、「15歳と7歳の兄弟の年齢を足した数字をブラウザに出力したい」というときは、

<?php
    $brotherAge = 15 + 7;
    echo $brotherAge;
?>

という風に書きます。

計算式(15 + 7)に名前を付けられんですね。

また、足した数字を母親(50歳)の年齢と足して出力したい場合には

<?php
    echo $brotherAge + 50;
?>

と記述すれば、ブラウザ上に72と表示されます。

兄の年齢が1つ上がった時は、

<?php
    $brotherAge = 16 + 7;
?>

と変数を定義した場所だけを変更するだけでよくなります(同じ変数を様々な場所で使うことが多いからです)。

初めはなかなかイメージがわかないかもしれませんが、「変数はデータをまとめられる便利な箱」と覚えておきましょう!

変数の名前の付け方にはルールがあるよ!

変数はデータに名前をつけられますが、名前を付ける際にはルールが3つあります。

【変数の名前の付け方3つのルール】
1変数の名前は$(ダラー)から始まります。
2半角英数字と「_」(アンダーバー)が使えます。ただ数字は先頭文字に使えません。
3英字の大文字、小文字は区別され、全く別の変数と認識されます(brotherとBROTHERは別物)。

この3つは最低限の基本ルールなんだけど、あとは「どんなものが代入されているか?」が一目でわかる名前にしてあげると親切だね!

例えば、年齢の値を代入するなら「$age」ってすると「あ、この変数には年齢の値が入っているんだな」と他の人が見てもすぐにわかるでしょ?

プログラミングはチームでやることが多いから、相手を思いやるコーディングができるとワンランク上のプログラマーになれるぜ!

変数の書き方(定義する方法)をマスターしよう!

変数の書き方は次の構文通りです。

【変数の書き方の基本】
$変数名 = 変数に代入する値 ;

「=」の右側に書いたデータが変数に格納されます(「代入する」という)。

注意点として、この=は「同じ」という意味ではなく、「代入する」という意味です。

$brotherAge = 15+7という変数は、15+7 = $brotherAgeではないということなので気を付けましょう。

もちろん、文字列も代入できます。

<?php
    $name = 'Taro Yamada';
    $nameJp = '山田 太郎';
?>

また、変数は中身を何度でも入れ替えることができるので怖がらずに使いましょう!

【変数のポイント】

  1. 変数はデータを入れる箱
  2. 変数名の付け方にはルールがある
  3. 変数の書き方は $変数名 = 変数に代入する値 ; 

変数って聞くと難しいけど、「データを入れる箱」って考えると難しくないね!
だって、ただの入れ物ってことだもんね?

そゆこと!「変数」って言葉がややこしくしてるけど、ただの入れ物なんだ!
引越しをするときに段ボールに物をいれて、名前を貼っておくみたいなものだね。

例えが微妙だな(笑)

2.配列(データを複数入れられる箱)

配列とは複数のデータを1つにまとめられる箱

配列とは、複数のデータや変数をくっつけて並べ、配列という大きめの箱にまとめておくことができる入れ物のことです。

いくつかのデータや変数という箱などを一つにまとめて入れて、管理できるということですね!

「変数は一つのデータ」、「配列は複数のデータ」を入れる箱くらいに覚えてもらえば問題無いです。

配列には複数のデータを入れられますが、それぞれのデータのことを「要素」と言い、まとめてデータを取り出すことも、1つずつ取り出すこともできてとても便利です。

配列の作り方は3つあります。

配列の基本の書き方は、$配列名[ ] = ‘要素名’ ;です。

配列名の後ろは[ ] (角括弧)が入る点に注意してください。

それでは、配列の作り方3種類を見ていきましょう!

1つずつ代入する方法
<?php
  $配列名[0] = '要素名';

  // 例えば
  $my_boyfriends[0] = '矢沢永吉';
?>

1つずつ要素を代入していく場合、$配列名[0] = ‘要素名’; と記述します。

この0という数字は「キー」と呼ばれ、「何番目の要素か」ということを識別する役割があります。

ややこしいのですが、配列は「0」からはじまるということに注意しましょう!

2つ目に要素を入れる場合は、

<?php
  $配列名[1] = '要素名';

  // 例えば
  $my_boyfriends[1] = '森山直太朗';
?>

15番目に要素を入れるなら

<?php
  $配列名[15] = '要素名';

  // 例えば
  $my_boyfriends[15] = 'マッスラー藤本';
?>

となります。

この方法は、指定した場所に要素を入れたい時に使うよ!
たとえば、すでに配列にいくつかの要素が入っている時に、「2番目の要素を別の内容にしたいな」って時に、配列名[1] = ‘要素名’ みたいに書けば要素を入れ替えられる。

キーを省略して書く方法
<?php
  $配列名[] = '要素名';
  $配列名[] = '要素名';
  $配列名[] = '要素名';

  // 例えば
  $my_boyfriends[] = '矢沢永吉';
  $my_boyfriends[] = '森山直太朗';
  $my_boyfriends[] = 'マッスラー藤本';
?>

2つ目は、キーを省略して書く方法です。

$配列名[ ] = ‘要素名’; $配列名[ ] = ‘要素名’; $配列名[ ] = ‘要素名’;と書いていくと、記述した順番に0, 1 , 2とキーが割り当てられていきます。

$配列名の名前を同じものにすれば、同じ配列に複数の要素を順番に代入することができます。

上との違いは[ ](角括弧)内にキー(数字)を記述するかどうかですね。

array関数を使ってまとめて書く方法
<?php
  $配列名 = array ('要素名','要素名','要素名');

  // 例えば
  $my_boyfriends = array('矢沢永吉', '森山直太朗', 'マッスラー藤本');
?>

arrey関数を使って書く方法では、複数の要素を1行にまとめて書くことができる書き方です。

ここまで紹介した書き方では、$配列名[]を要素の数だけ記述しなければなりませんが、array関数を使えば配列名を1度しか書かずに済むため便利です。

書き方は、$配列名 = array(要素名 , 要素名 , 要素名);と書くだけです。(arrayは配列という意味です。)

あまり難しく考えず、要素数が多い場合はこちらの書き方を使うくらいでOKです。

この書き方が一番使うと思うから、しっかりと覚えておこう!

配列を出力するための書き方

では、今度は配列に代入した要素をechoでブラウザに出力する方法を紹介します。

例として、月曜日,火曜日,水曜日の3つの値が入っている配列を用意しました。

やり方は簡単で、echoのあとに配列名と[]でキーを記述するだけです。

<?php 
  $days = array ('月曜日', '火曜日', '水曜日');
  echo $days[1];
?>

echo $days [1] と記述すれば、ブラウザには 火曜日 と表示されます。

【実行結果】

火曜日

慣れてくると配列はとても便利なので、どんどん使っていきましょう!

ちなみに、print_r()という関数を使うと、「月曜日、火曜日、水曜日」っていう中身のすべてが出力されるよ!

配列の中身、何が入ってるのかな~?って時によく使うから、覚えておいて損はないぜ!

<?php
  $days = array ('月曜日', '火曜日', '水曜日');
  print_r($days);

  // 実行結果
  Array ( [0] => 月曜日 [1] => 火曜日 [2] => 水曜日 )
?>

【配列の書き方まとめ】

<?php
  // 1つずつ代入する書き方
  $配列名[キー] = '要素名' ;

  //キーを省略する書き方
  $配列名[] = '要素名';

  // array関数を使う書き方
  $配列名[] = array('要素名', '要素名', '要素名');
?>

配列ってどんな時に使うの?変数じゃダメ?

変数と配列の使い分け

ふーん。配列って確かに便利そうだけど、何か複雑そう。変数で良くない?(笑)

配列は複数のデータを1つのカタマリにできる便利なものですが、どんな時に使うのでしょうか?

いくつか配列を使うシチュエーションはありますが、分かりやすい例でいうと処理する項目が多い時です。

コンピューターに繰り返してもらいたいほど数が多い処理とイメージしてもらえれば良いでしょう。

例えば100人分の名前を一人目から順番に出力する場合、あなたならどうしますか?

変数を使った場合、

<?php
  $name1 = 'マイケル';
  $name2 = '吉田ごんぞう';
  $name3 = '桜井カオス';
  .
  .
  .
  $name100 = 'ドドスコ御徒町';
?>

みたいに100回変数を定義するだけでなく、echoも100回おこなう必要があります。

しかし、配列なら

<?php
  $names = array('マイケル', '吉田ごんぞう', '桜井カオス', ...... 'ドドスコ御徒町');
  print_r($names);
?>

と記述すればOK。

どちらが短い時間で済むかはすぐにわかりますよね?

データを出力する時も複数のデータをまとめてもっている配列なら、後で紹介する繰り返し処理でさらに短い記述量で処理を書くことができます。

「配列は、処理するデータが複数の時に使う!」って覚えておけば問題なしだぜ!

配列に関する便利な処理

配列に入っているデータの数を求める

配列には複数のデータを入れることができますが、時には配列に何個のデータが入っているかを知りたいシチュエーションもあります。

今はあまりイメージがわかないと思うので、「配列に何個データが入っているか調べることもできるんだなぁ」くらいに思っておいてもらえれば大丈夫です。

方法は、「count関数」を使うだけ。

<?php
  $days = array('月曜日','火曜日','水曜日';

  echo count($days);
?>

【実行結果】

3

count関数は、その名の通りカウント(数を数える)するための関数(プログラムのかたまり)です。

使い方は、定義した(配列にデータを代入した)配列をcount関数で指定するだけです。

$days = (‘月曜日’,’火曜日’,’水曜日’);と配列を定義した場合、echo count($days)と記述すれば、ブラウザには「3」と表示されます。

月曜日、火曜日、水曜日という3つのデータが入っていることを簡単に確認できましたね!

【配列のポイント】

  1. 配列は複数のデータを入れておくことができる箱
  2. 配列の定義方法は$配列名[ ] = 要素名が基本で、array関数でまとめて定義できる。
  3. 配列の1つ目の要素は0という番号が振られる
  4. 出力はecho $配列名[キー]でキーで指定したデータを出力できる
  5. 複数の共通するデータを扱う場合は配列を使った方がラク
  6. count関数を使えば、配列の中身の数を簡単に確認できる

配列っていう箱もよく使うんだね!

配列は変数と同じくらい大切な項目だよ。
正直、配列がないと仕事にならないくらいだ。

3.連想配列(配列のデータに連想できる名前を付けられる配列)

連想配列とは

配列には、「連想配列」というものがあります。

基本的には配列と大きな違いはなく、複数の要素を1つの箱の中に入れられるものです。

配列との違いは、複数の要素それぞれに名前を付けて箱に入れておけるということ。

普通の配列では0から始まる番号がキーとして割り当てられているだけでした。

しかしその場合、「8番目に入っていた要素ってなんだっけ…」となる可能性が高いのです。

連想配列の場合は、キー名に任意の名前が付けられるので、要素の識別がしやすくなり、管理が楽になります!

書き方は、配列とほとんど同じですが、「’キー’ => ‘要素’」 というように書きます。

<?php
 $yen = array('yukichi' => '1万円', 'ichiyo' => '5,000円', 'hideyo' => '1,000円');
?>

「$yen」が配列名で、1万円という要素に対してyukichiという名前(キー)を付ければ、どの順番に1万円が入っていても呼び出しやすいですよね?

出力はecho $yen[‘キー名’]とすればOKです。

例えばこんな感じ。

<?php
 $yen = array('yukichi' => '1万円', 'ichiyo' => '5,000円', 'hideyo' => '1,000円');
  echo $yen['yukichi'];

  // 実行結果
  1万円
?>

後で詳しく紹介しますが、foreach文という繰り返し処理の文法を使うことで、連想配列はもっと便利になりますよ♪

実際、仕事でもよく使います。

今の時点では、「連想配列って配列もあったなぁ」くらいで大丈夫。

【連想配列のポイント】

  1. 連想配列とは、要素に名前を付けて代入できる配列のこと
  2. 書き方は $配列名 = array(‘キー’ => ‘要素名’ ……..) ;
  3. foreach文で使われることが多い

現時点ではそんなに詳しくなくても大丈夫。
「任意の名前を付けられる配列」って認識でOKさ!

4.スーパーグローバル変数

スーパーグローバル変数とは、「すでにPHPのプログラムの中で定義されている変数」のことで、PHPのプログラムの中に元々作られています。

その実態は連想配列となっているため、ユーザーから送信されたデータ(フォームなどのデータ)などが自動で格納されるようになっています。

ユーザーが入力したデータを受け取れるので、フォーム入力などでよく使います。

初めのうちは「GET」と「POST」だけ頭に入れておけばよいでしょう。

$_POST、$_GETのほかに、$GLOBALS等があります。

フォーム入力などで使うってとこは意味わかるけど、実態が連想配列になってるとか言われてもピンとこないなぁ~

うん、まぁ実際に動かしてみないとイメージわかないよね。

例えば、ユーザーがお問い合わせフォームで入力した値は、$_POSTとか$_GETっていう連想配列に格納されるんだ。

普通、問い合わせフォームとか送信すると、自動返信メールが来るじゃない?

あれは、PHP側で$_POSTに入ってるメールアドレスを元にメール送信処理をおこなっているからなんだ。

スーパーグローバル変数もフォームでよく使われるから覚えておこう!

なんで「スーパーグローバル変数」ってかっこいい名前がついてるの?

普通の変数は関数の中でしか使えないとか、呼び出せない、定義しないと使えないってルール(スコープというルール)があったりするんだけど、スーパーグローバル変数はそのルールを無視できるんだ。

なぜかというと、もともとPHPのプログラムにある変数だからね。
いちいち定義する必要がない特別なものだから、特殊な名前が付いたんだと思うよ。

へぇ。よくわかんないけど、便利なものなんだね。

【スーパーグローバル変数のポイント】

  1. スーパーグローバル変数とはPHP自体に用意されている変数のこと
  2. スコープのルールを無視して、どこからでも使える便利なもの
  3. 入門時点では「ユーザーの情報などを取得するときによく使う」くらいに覚えておく

5.フォームでデータを受け取る

フォームのデータを受け取る

PHPは、ショッピングサイトなどの「ユーザーが情報を登録するようなWebアプリケーション」などを作るのによく使われます。

当然、その際にお客様情報などのデータを取得する必要がありますよね?

そのため、フォームからデータを受け取るためのプログラムについても理解しておく必要があります。

ザックリいうとHTMLのフォームにブラウザで情報を入力してもらい、そのデータを裏でPHPが読み込み、サーバーに送って保存していつでも呼び出せる状態にするという流れです。

HTMLのフォームタグには、method(メソッド)属性を入力できます。

<form method="post">
</form>

このmethod属性でデータの送信方法を決めています。

いくつかあるのですが、データの送信方法は上で紹介したスーパーグローバル変数の「GET」と「POST」を使うのが一般的です。

GETとPOSTの違いは、以下ページが参考になります。
GETとPOSTの違いについて

個人情報などを入力するフォームを作る時は、基本的にmethod = POSTです。

そしてもうひとつ必要なのが、フォームの送信ボタンを押した時にどのページを表示するのか、を決める必要があります。

それを決めるのがaction属性です。

<form method="post" action="send.php">
</form>

上記のように書くことで、送信ボタンが押された時にsend.phpに移動させることができるようになります。

氏名入力欄と送信ボタンを配置する

続いて、氏名を入力する欄を作りましょう。

HTMLを勉強している人ならわかると思いますが、inputタグを利用します。

<form method="post" action="send.php">
 氏:<input type="text" name="first_name">
  名:<input type="text" name="last_name">
  <input type="submit" value="送信">
</form>

忘れてはいけないのが、name属性です。

name属性を使うことで、PHP($_POST)でデータを取得できるようになっています。

続いてsend.phpを作って、以下の通りに書いてみましょう。

<?php
  $first_name = $_POST['first_name'];
  $last_name = $_POST['last_name'];
  echo $first_name . $last_name;
?>

このように記述すれば、入力欄にユーザーが入力した氏名がブラウザに表示されます。

簡単な説明ではありますが、htmlのformをちゃんと記述し、PHPの$_POSTを使えばデータを取得できるということを覚えておきましょう!

はじめのうちはこれだけでもOKです。

自分でショッピングサイトなどをつくるようになったら徐々にデータの受け取り方などをマスターしていきましょう。

HTMLでformタグに付けたメソッドって、ここで使われてたんだね!
「何のためにこれ付けるんだろう…無駄じゃない?」ってずっと疑問だったよ(笑)

たしかに、これを知らないと意味わからないだろうね(笑)
入力値を取得するとかがわかってくると、Web制作がもっと楽しくなるから絶対に覚えておこう!

【PHPでフォームのデータを受け取るポイント】

  1. データの取得の流れは、ユーザーがデータを入力→PHPで読み込み、送信→サーバーに保存→PHPで呼び出す
  2. スーパーグローバル変数の「GET」や「POST」を使って受け取る
  3. HTMLのformタグで受け取る情報の名前(name)を指定し、methodでデータの送信方法(GETかPOST)を指定しておく必要がある

ユーザーの個人情報を守るエスケープ処理について

個人情報を守るエスケープ処理

エスケープ処理とは、文字列などの本来の意味を打ち消す処理のことを言います。

なぜフォームのところでこのお話をするかというと、ユーザーの個人情報を守るためです。

エスケープ処理はセキュリティ面で重要ということ。

フォームでデータを取得・出力する場合、PHPではhtmlspecialcharsという関数を指定することを徹底してください。

書き方は以下の通りです。

<?php
 echo htmlspecialchars($_POST['first_name'] , ENT_QUOTES , 'utf-8' );
?>

現時点では、「データを出力する時は、こんな風にデータを守るんだな」くらいで大丈夫ですが、実際にプログラムを書く時には忘れないようにしましょう。

でないと、ハッキングされる可能性が高まってしまいます(悪意あるスクリプトをフォームに入力することで、個人情報が抜き取られるなどの危険があり、これを「XXS(クロスサイトスクリプティング)」といいます)。

htmlspecialchars関数は、悪意あるスクリプトを入力されても動作しないように防いでくれます。

$_POSTの後に書かれている「ENT_QUOTES」も似たような働きをしています。

utf-8は文字コードを指定しているだけですね。

POSTでデータを受け取れるってわかった時点で、データを守るということも意識しとかないとね!
htmlspecialcharsっていう関数を使えばひとまず安心だから、「POSTでデータを受け取ったらhtmlspecialcharsする」って覚えておこう!

【エスケープ処理のポイント】

  1. エスケープ処理をしないと個人情報を盗まれる可能性などがある
  2. ユーザーのデータを受け取る時は「htmlspecialchars」をする
  3. 個人情報を扱う時は、GETではなくPOSTを使う

6.プログラミングがもっと楽しくなる!制御構文とは?

プログラミングができるようになってくると、「こんな時はこっちのページを表示したい」「入力された値に対して計算された値を表示したい」といった要望が出てきます。

そんな時に役立つのが「制御構文」です。

ここまでお話してきた内容は上から順番通りにプログラムを処理するだけでしたが、制御構文を使えば色々な状況に応じて処理を変えることができます。

制御構文を使いこなしていくと、プログラミングがさらに面白くなってきますよ♪

そして、制御構文には「条件分岐」と「繰り返し処理」の2つがあります。

なんだかやっとプログラミングっぽくなってきたなぁ♪正直、ここまでの話退屈だったよ(笑)

おいおい!ここまでの話はメチャクチャ大事だぜ!
でもたしかに、ここからの内容は楽しめるから、継続して学習してくれよな!

条件分岐ってなに?

条件分岐とは

条件分岐はプログラミングをするうえでなくてはならないものです。

では、条件分岐とはどういったものでしょうか?

難しく考える必要はなく、「ある条件を満たしたらこっちの処理、満たさなかったら別の処理をするように命令する」だけのものです。

つまり、状況に応じて適切な処理をパソコンに指示することを条件分岐と言います。

例えば、朝の時間帯は「おはようございます」というメッセージ、夜は「こんばんは」というメッセージを表示してほしい場合、条件分岐を使えば簡単にその要望が叶えられるぜ!(am0:00~11:59まではこっちの処理、pm0:00~11:59まではそっちの処理と指定する)

条件分岐の意味合いとしては、「もし~ならこっちの処理を実行してね」とイメージしてもらえるとわかりやすいぞ。

条件分岐には、「if文」と「switch文」があります。

条件分岐の基本!「if文」を使いこなそう!

条件分岐の代表はif文だ。これを使いこなせるようになると、色んなサービスやアプリケーションを作れるようになるぜ!

条件を判定する「真」と「偽」を理解しよう!

条件を判定する真と偽について

まず、条件を判定するための「真」と「偽」について簡単に説明します。

条件分岐をするときは、「条件に対して正しいか、正しくないか」という判定をする必要があります。

正しいか正しくないかで処理の内容を変えることができ、その判定結果が「真」と「偽」です。

言葉の通り、条件を満たしていた場合に「真(true)」、条件を満たしていなければ「偽(false)」です。

今の時点ではよくわからないかもしれませんが、条件分岐をするときは真と偽でコンピューターは判定していると覚えてください。

そして、真だったらこっちの処理、偽だったらこっちの処理をするように、処理内容を状況に応じて切り替えられるというイメージを持ってもらえるといいでしょう。

「偽」はダメなものではなく「条件に一致しない」という意味だからね!
勘違いしないようにしよう!

if文の書き方を覚えよう!
<?php 
  if (条件式) {
    処理するプログラム ;
  }
?>

if文の書き方の基本は、if (条件式) { 処理; }という流れで書きます。

言葉にすると、「if(もし)、条件(ここに書いた条件を満たしていた場合) { 処理 }(この処理をしてね)といった感じですね。

具体例を見てみましょう!

<?php 
  $number = 10;
  if ( $number == 10) {
    echo '変数の値は10です。' ;
  }
?>

上記を日本語に直すとどういう意味だと思いますか?

この例の場合、変数numberには10が代入されており、「もし$numberの中身が10だったら、『変数の値は10です。』って表示してね」とコンピューターに命令しているわけです。

仮に変数numberに8が代入されていた場合は、条件を満たしていないので何も表示されないことになります。

意外とシンプルですよね!

ifで値を比較する時は、イコール(=)がふたつってところに注意!

イコールがひとつだと代入になっちゃうからね!

条件を満たさない時の処理は「else」を使う
<?php    
  if (条件式) {      
  処理するプログラム ;    
  } else {      
    処理するプログラム ;    
  }
?>

では、条件を満たさない場合に別の処理をしたいときはどうすればいいのでしょうか?

答えは「else」を使って表現できます。

elseとは英語で「それ以外の」という意味の言葉です。

書き方は、上の処理の後に続けて書きます。

先ほどの例をちょっと変更してみましょう。

<?php  
  $number = 8 ;  
  if ( $number == 10) {   
    echo '変数の値は10です。' ;  
  } else {
    echo '変数の値は10ではありません。' ;
  }
?>

【実行結果】

変数の値は10ではありません。

 

さらに細かく条件を指定したい時は「elseif」を使う
<?php 
  if (条件式 1) {
    処理するプログラム ;
  } elseif(条件式 2) {
    処理するプログラム ;
  } elseif(条件式 3){
    処理するプログラム ;
  } else {
    処理するプログラム ;
  }
?>

ここまでで条件1つに対して2つの処理を実行できるようになりましたが、もっと細かく処理を追加したい場合もありますよね?

その場合は、elseifというものを使います。

書き方はifと同じですが、elseが最後になるよう、間に記述するという違いがあります。

<?php
  $var = 5 ;
  if ( $var == 10) { 
    echo '変数の値は10です。'; 
  } elseif ($var == 5) { 
    echo '変数の値は5です';
  } else { 
    echo '変数の値は10と5以外です。'; 
  }
?>

【実行結果】

変数の値は5です。

ちなみにelseifは、何回でも使うことができます。

ただし、初めはif、最後はelseとなるようにしてくださいね!(条件に合わなくても処理を行わない場合はelseの省略可)

if文って初めチンプンカンプンだったけど、そんなに複雑じゃなさそうだね!

意外と簡単に使えるのもif文のいいところだね!
頭の中で日本語に変換しながら書いていくと、ミスが減ると思うよ!

ifで最初の条件を指定して、合わなければelse、もっと細かく条件を指定するならelseifだね!

条件分岐には「switch文」もあるよ!

switch文とは

条件分岐には、if文のほかにswitch文というものもあります。

if文との違いは書き方にあるくらいで、できることはif文と同じ条件分岐です。

正直、switch文は使う機会がそれほど多くはないので詳しくは紹介しません。

if文よりも読みやすいというところがメリットでしょうか。

switch文の書き方は、以下の通りです。

<?php switch (条件式){ case 値1: 式が値1と等しい時の処理1; 式が値1と等しい時の処理2; break; case 値2: 式が値2と等しい時の処理1; 式が値2と等しい時の処理2; break; case 値3: 式が値3と等しい時の処理; break; default: 式がいずれの値にも等しくない時の処理; } ?>

switch文は条件式の値を評価し、caseの後に記述された値と1つずつ比較していきます。

もし、一致する値があった場合には処理を実行し、「break」に達したら終了するという流れです。

どの「case」にも一致しなかった場合、「default」に記述した処理を実行するようになっています。

注意点は、「break」の記述を忘れないこと。

switch文は「break」を見つけたら処理を終了する仕様になっているので、breakがないと思わぬ挙動をすることがあります。

switch文は、初めのうちはあまり気にしなくてもいいぜ!

まだ入門レベルの場合は、おとなしくif文を使っておけばOKだ。

こんがらがっちゃうからね。

ただ、プログラミングをしていると目にする機会はあるから、「こんな条件分岐もあったなぁ」くらいには覚えておこう!

【条件分岐のポイント】

  1. 条件分岐は、条件に対する結果が「真」か「偽」によって処理を変えている
  2. if文は「もし○○だったらこの処理をしてね。」という意味合いを持つ
  3. 書き方の基本は if (条件文) { 処理内容 }
  4. 「偽」の時の処理は「else」を使って別の処理を書く
  5. 細かく条件を指定する時は、「elseif(条件文)」をifとelseの間に書く
  6. 条件分岐には「switch文」もある

演算子(えんざんし)も超重要!けど、難しくないよ!

プログラミングを学んでいくと必ず出てくるのが「演算子」。

聞きなれない言葉なので「難しそう」と感じるかもしれませんが、実態は計算する時に使う「+」や「-」などの記号のことです。

「演算」とは「計算」と同じ意味と考えてもらって大丈夫。

ただ、プログラミングの世界では「演算」は「計算、処理する、操作する」という意味も含んでいるということは知っておいてくださいね!

演算子には、「算術演算子」「比較演算子」「論理演算子」があります。

ここまで、変数を定義する時に使ってた「=」なんかも演算子なんだ!
サラッと使ってたけど、色々な種類があるから頭に入れておいてくれよな!
演算子もどんなプログラミング言語でも使うから、覚えて置いて損はないぜ!

算術演算子は計算する時に使う記号のこと

まず、数値の計算を行う時の演算子「算術演算子」についてみていきましょう。

算術演算子は、足し算をするときの「+」、引き算での「-」などです。

プログラミングでも、計算する時には+-などの記号を使います。

例えば、3に7を足した数字を計算してブラウザに出力する場合、echo 3 + 7; と記述すれば「10」という数字が表示されます。

簡単ですよね?

ただ、掛け算、割り算は記号が違うので注意しましょう。

以下は、算術演算子の記号を表にまとめたものです。

足す
引く
掛ける
/ 割る
割り算の余り

演算子って聞くと難しそうだけど、小学校でやった記号のことだったんだね(笑)

この辺のわかりにくさはプログラミングの悪いところかもね(笑)
ちなみに、演算子にも「足し算と掛け算が同じ式に含まれている場合は、掛け算を優先的に計算する」っていうルールがあるからね!
基本は算数と同じだから。

あー、あったようななかったような…。
()に入ってるやつも先に計算するんだったね!

データを比べて真偽を決める!比較演算子について

比較演算子についても知っておきましょう。

比較演算子と聞くと難しく感じますが、「ただ要素を比較する時に使う記号」くらいに覚えておいても良いでしょう。

if文の条件式で何気なく使っていた「==」などが比較演算子です。

他にも「<(大なり)」や「>(小なり)」、「>=」などがありますが、いきなりすべて覚える必要はありません。

PHPを使いながら覚えていけばOKです。

以下に比較演算子を表にしてまとめておいたので、「いくつか種類があるんだなぁ」くらいに見ておいてください。

if文の条件を記述するところなど、使える場面はたくさんあります。

【比較演算子まとめ】

比較演算子 意味合い
== 等しい
=== 型も含めて同じ
!= 等しくない
!== 同じじゃない
> より大きい
< より小さい
>= 以上
<= 以下

キャバコも小学生の時こんな記号使った気がするなぁ。

中高でも使ったべ!

あ、「==(等しい)」と「===(同じ)」って何が違うの?

いいところに気づいたね!
結論から言うと、「データの値と型」が完全に同じものは「===」でtrue、全く同じじゃないけどデータの値だけ同じみたいな場合は「==」でtrueという結果になるという違いがあるんだ。

ん?「データ型」ってなに?

例えば、「”こんにちは”」という文字は「文字列型(string)」、「3」という数字は「数値型(integer)」というデータ型になる。

数字に焦点をあてて例を出すと、「”3″」は「””(ダブルクォーテーション)」で囲われているから文字列型。

ダブルクオーテーションで囲われていない「3」はただの「3」だから数値型になるんだ。

ふん、つまりどういうこと?

比較演算子「===」は、データ型まで指定して分岐できるぜ!ってことなんだ。

上の話に戻ると、「$a = 3」と「$b = 3」を代入した変数を比較すると、$a == $bにした場合はtrueになって、$a === $bだとfalseになる。
同じ「3」でもデータ型が違うから、「==」と「===」で比較した時に違う結果になるんだ。

そっか、「==(等しい)」と「===(型も含めて同じ)」には「厳密に言って同じかどうか」を判定する能力があるんだね!

そゆこと!
データ型は8種類あるから、時間がある時に確認してくれよな!(データ型についてはこちら

なんでここで説明しないかというと、PHPはあまり細かいルールを気にしないおおざっぱなプログラミング言語だからなのだ!(笑)
もうちょっと知識がついてきたら、データ型についても見といてくれよな!

条件を組み合わせて、より柔軟な条件設定ができる。論理演算子について

もう一つ知っておいて欲しいのが「論理演算子」です。

こちらも難しく聞こえますが、比較演算子と同じように条件を指定する時に使う記号です。

「条件をいくつか組み合わせて、その条件を満たした時のみ処理を行いたい」といった場面で使います。

例えば、変数の値が「3」のときと「6」のときにだけ処理を実行したい場合、if ($var == 3) && ($var ==6) { 処理 }と書きますが、「&&」が論理演算子です。

日本語にすると、「かつ」という意味を持ちます。

記号も「&」を使っているのでイメージしやすいですよね♪

このように、複数の条件を満たした時だけ処理を行いたい時に便利なのが、論理演算子です。

以下の表で2つの論理演算子を確認しましょう!

&&($a && $b) $aと$bの両方の条件を満たした時にtrue
|| ($a || $b) $aか$bどちらかの条件を満たした時にtrue

なにこの「||」棒2本(笑)

これは「または」って意味合いの論理演算子だ!よく覚えておこう!

【演算子のポイント】

  1. 演算子は、「計算」「処理」「操作」するための記号のこと
  2. 計算する時には「算術演算子」を使う
  3. 比較する時には「比較演算子」を使う
  4. 複数の条件を使って比較する時には「論理演算子」を使う

7.繰り返し処理ってなにするの?

繰り返し処理とは

もう一つの制御構文は「繰り返し処理」です。

その名の通り、同じ処理を自動で繰り返させる命令文ですね!

たとえば、1~100の数字をブラウザに出力したい場合、echo ‘1’ ; echo ‘2’; echo ‘3’;……………….echo ‘100’と記述しても確かに間違いではありません。

けど、100個同じ処理を書くのって面倒ではないですか?

コンピューターは、人間が面倒と感じるものを処理するのが得意なのに。

繰り返し処理なら、少ない記述量であっという間に1~100を表示できますのでぜひマスターしてください。

for文、while文、foreach文があります。

for文は繰り返し処理のテッパン!

for文の基本

for文

for文は、「for(~の間)繰り返してね」という命令を出すための構文です。

書き方は少し慣れが必要ですが、慣れてしまえば大変便利なものとなります。

以下のように書きます。

<?php
for(繰り返し開始時に行う処理 ; いつまで繰り返すか? ; 各繰り返しの後に行う処理) {
 繰り返す処理 ;
}
?>

for (繰り返し開始時に行う処理 ; いつまで繰り返すか? ; 各繰り返しの後に行う処理 ) { 繰り返す処理 ; }というのが基本です。

forに続くカッコ内に繰り返すための処理をすべて書くという特徴がありますね!

具体的に、1~100までの数字を出力させたい時には以下のように書きます。

<?php
$number = 100;
for ( $i = 1 ; $i <= $number ; $i++ ) {
 echo $i;
}
?>

たったこれだけで1~100までの数字を出力してくれます。

 


【このコードの解説】

まずは条件の基準となる100という数字を変数に代入(定義)します(変数に代入という処理をしています)。

変数iが$number以下の数字の時にだけ処理を実行してくれて、$number (100); を超えたら(101以上)処理が停止します。

そして、1回この条件が読み込まれるごとにecho $i ; でブラウザに数字を表示します。

i++は、{}の中の処理を終えたら$iに1を足してねという意味。

つまり、echoで$i(1)を表示したら$i (1)に1を足すという処理がされるので、$iの中身は2になっています。

$i (2)は100よりも小さい数字なので処理が継続され、echoによって2がブラウザに表示されます。

これを100になるまで繰り返してくれるというわけですね。

【実行結果】

1
2
3
4
.
.
.
100


書き方を覚えてしまえば簡単に応用できるので、まずは構文から覚えてしまいましょう!

繰り返し処理って難しいのかと思ったけど、forのあとの()の中身を指定できれば簡単そうだね!

あまり難しくないし、単純作業を自動でやってくれるからすごく便利だ!

for文を使えば業務効率化ができるぜ!

【for文のポイント】

  1. for文は、条件にマッチしている間は繰り返し同じ処理をしてね!という意味
  2. 書き方はfor (繰り返し開始時に行う処理 ; いつまで繰り返すか? ; 各繰り返しの後に行う処理) {繰り返す処理 ;}

while文についても知っておこう!

while文も「while(~の間)繰り返してね」という命令を出す構文です。

できることはfor文と同じです。書き方は、

<?php
while (繰り返しを続ける条件) { 
  繰り返す処理 ; 
  繰り返す処理が終わった後の処理 ; 
}
?>

となります。

for文で例として出した、1~100の数字を順番に出力するには以下のように書きます。

<?php
$number = 100;
$i = 1;
while ( $i <= 100 ) {
  echo $i;
  i++;
}
?>

書き方はfor文と異なりますが、やっていることは全く同じです。

違いは$iをwhile文の前に定義していること、繰り返した後に行う処理をechoの下に記述していることくらいでしょう。

while文に関しても、「こんな繰り返し処理あったなぁ」くらいでOKだ!

というのも、for文を使う人の方が圧倒的に多いからね。

でもさでもさ、while文ってものが存在しているんだから、何かしら存在意義があるんじゃないの?

お!知りたがりだねぇ。

for文とwhile文の使い分けは以下に説明するよ!

for文とwhile文、どっちを使えばいいの?

どっちを使っても問題無いです。

どうしても使い分けたい場合、繰り返す回数が決まっている場合はfor文、回数の指定がない場合はwhile文を使えば良いでしょう。

ちょっとわかりにくいので、カレーを作る時を例に説明します。

カレーを煮込んだ後に、火を止めるタイミングをプログラミングで指定する時に、火をつけて30分後に火を止めるという条件の場合はfor文、ニンジンに串が通るようになったらという条件の場合はwhile文という感じです。

明確な数字があるかないかで使い分けると覚えておいてください。

ほえ~。「明確な数字があるかどうか?」で使い分けるんだねぇ。
でも、なんでそんな使い分け方をするの?

結論を言うと、「プログラミングをしやすくするため」かな。

for文とwhile文では、$iを定義する場所が違ったでしょ?

あー、そうだったね。

for文では条件式の中、while文ではwhile文の前。

for文の中で定義した$iは、プログラミングの「スコープ(ある場所で定義した変数や関数を使える範囲のこと)」っていうルールによって、他の場所では使えないことになるんだ。

一方でwhile文は、while文の外側で$iを定義しているよね?

うんうん。

つまりwhile文で使う変数は、while文の外に定義されてるから、スコープのルールによって他の場所でも使えてしまうことになるんだ。

そうなると思ってもないところでその変数が適応されたりして、思い通りのプログラミングができないリスクがある。

そうならないためにも、明確な数字があるから変数を定義しなきゃいけない場合はfor文を使うっていう暗黙のルールがあるんだ。

逆に明確な数字は無いけど、処理を終了するタイミングが明確な場合はwhile文の方がシンプルに表現できて読みやすい。

結果、プログラミングをしやすくなるってわけさ!

ふーん。わかったようでよくわからないや(笑)

おい!(笑)でも、今はそれでOKさ!
これからwhile文を見かけることがあったら、この記事のことを思い出してくれ!
とりあえず、今の段階ではfor文を覚えよう!

【while文のポイント】

  1. while文よりfor文のほうが利用頻度は高いため、今は名前と書き方を知っておけばOK
  2. 書き方はwhile (繰り返しを続ける条件) { 繰り返す処理;    繰り返す処理が終わった後の処理;  }
  3. 繰り返す回数が明確な数字ではない場合にwhile文を使う

foreach文

foreach文は、配列の中の複数のデータそれぞれに対して、順番に処理を行う時に使う繰り返し処理です。

要素の数の分、繰り返し処理をしてくれます。

「配列の中のデータに対して繰り返し処理を行うもの」くらいに覚えてもらって大丈夫ですね。

書き方はこのようになります。

2通りあるのでゴチャゴチャしちゃいそうですが、基本は同じ。

<?php
foreach ( 配列名 as 配列の要素の値を入れる変数 ) { 
    繰り返す処理 ;
}
?>

【具体例】

<?php
$arr = array('カレー','ハンバーグ','オムライス');
foreach ( $arr as $value ) { 
    echo $value , 'が好き。<br>' ;
}
?>

このように記述したら、(<br>は「改行」というhtmlタグです)

カレーが好き
ハンバーグが好き
オムライスが好き

と表示されます。

この例の場合、繰り返し処理の度に要素の値(カレーなど)が変数$valueに代入されます。

1回目の繰り返し処理では「カレー」が変数$valueに、2回目では「ハンバーグ」が$valueに、3回目では「オムライス」が$valueに代入されるので、ブラウザには「カレー」「ハンバーグ」「オムライス」の順番で繰り返し出力されました。

普通の配列ならこっちで、連想配列を使う場合はasのあとに「キー => 要素の値を入れる変数」を指定します。

<?php
$food = array('カレー' => 'みんな大好き' , 'ハンバーグ' => '男のソウルフード' , 'オムライス' => '女のソウルフード');

foreach ( $food as $key => $value) {
    echo $key. 'は'. $value. 'です。<br>' ;
}
?>

こちらの例では、

カレーはみんな大好きです。
ハンバーグは男のソウルフードです。
オムライスは女のソウルフードです。

という結果になります。

foreach文は、配列の中身の数だけ繰り返し処理をしてくれるから、繰り返す回数を指定せずに使えるところが便利だね!

例えば?

例えば、問い合わせのあったデータを順番に追加して表示させたい時があるとするでしょ?

問い合わせデータは日々増えていくから、その都度プログラムを修正しなきゃいけないけど、配列に自動で代入されるようにしておけば、あとは自動で増えていくデータを表示できるってわけさ♪

【foreach文のポイント】

  1. foreach文は配列に対して使う繰り返し処理構文
  2. 配列の中身の数だけ繰り返し処理をしてくれる
  3. 書き方は foreach (配列名 as 要素の値を入れる変数){ 繰り返す処理 ; }
  4. 連想配列に使うと便利

繰り返し処理のループを中断するにはどうすればいい?

ループ処理を中断するにはcontinuej文とbreak文を使う

プログラミングをしていると、繰り返し処理を途中で辞めたくなる場合があります。

そんなときは、「continue文」「break文」を使いましょう!

continue文とは繰り返し処理中に記述することで、「その処理をやめて繰り返し処理の初めの工程にスキップする命令文」です。

実質的には繰り返し処理をやめておらず、次の繰り返し処理に移行するためのものです。

一方break文は、「繰り返し処理のループそのものを抜けられる」命令文です。

途中で繰り返し処理を抜け、その次に書いてあるテキストなどに処理を移すことができます。

繰り返し処理を辞めたい時は、continue か break文を使えばやめられるということを頭の片隅に置いておいてください。

「continue文」と「break文」は、繰り返し処理とセットで覚えておこう!

8.めちゃめちゃ便利!「関数」ってなぁに?

関数って何?関数と聞くとアレルギーが出そうになるほど難しそうですよね。

ですが、プログラミングでの関数はあまり難しく考える必要はありません。

簡単に言うと「処理をまとめてくくったもの」だからです。

必要な処理(命令群)をまとめてパッケージ化しておいて、色々な場所・場面で使えるようにしておくだけの話なのです。

関数を使えるようになれば、動作確認や修正を効率よく行える、見やすくなる、行数を少なくできるなどのメリットがあります。

書き方は以下の通り。

<?php
function 関数名( ) {
 処理する内容を記述 ;

  //ここから例文です。
  $name = 'キャバコ' ;
  echo $name . 'はWebプログラマーを目指して勉強しています。';
}
?>

functionから始まり、関数名()をつけて、変数などのプログラムを囲うだけです。

(functionとはIT業界では「関数」を意味します。)

これで、色々なところでこの処理を簡単に実行することができます。

しかし、これだけではブラウザに出力することはできません。

なぜなら、まだ関数を定義しただけだからです。

変数や配列も定義しただけでは出力されませんよね?

関数を表示させるには、以下のように関数を呼び出してあげる必要があります。

<?php
function output_studier(){
  $name = 'キャバコ' ;
  echo $name . 'はWebプログラマーを目指して勉強しています。' ;
}

//ここで関数を呼び出しています。
output_studier();
?>

【実行結果】

キャバコはWebプログラマーを目指して勉強しています。

関数を実行するには、ただ「関数名( ) ; 」と記述すればOKです!

たったこれだけで、複雑な命令をしたプログラムをいつでも、何度でも呼び出すことができるのです。

とても便利ではないでしょうか?

関数は2種類あり、PHPにあらかじめ用意されている関数を組み込み関数、上で紹介したようなプログラマーが自ら考えて作るものをユーザー定義関数と呼びます。

組み込み関数を使うにはPHPリファレンスを見て、中身はどんなものが入っていて、どんな処理をしているのかを確認することが大切です。

リファレンスにはたくさんの組み込み関数が掲載されているので、どんなものがあるのか目を通しておくと良いでしょう。

⇒PHPのリファレンスを見る

引数(ひきすう)についても知っておこう!

関数を使う際、場面ごとに表示する内容を変えたい時が出てきます。

そんな時に使うのが「引数」です。

引数とは、関数を引き出す時に渡す値のことを指します。

イメージしにくいと思うので、先ほどの例を使って実際にコードを書いてみます。

<?php
function output_studier($name) {
  echo $name . 'はWebプログラマーを目指して勉強しています。' ;
}
?>

関数名のあとの()の中身($name)が引数です。

そして関数を呼び出す際に引数を変えるだけで、処理内容はそのままに結果を変更することができます。

<?php
function output_studier($name) {
  echo $name. 'はWebプログラマーを目指して勉強しています。' ;
}

output_studier('田口君');
?>

【実行結果】

田口君はWebプログラマーを目指して勉強しています。

このように、関数を呼び出すときに引数を指定してあげることで、結果を変えることができるのでとても便利です。

引数は($name , $age)のように複数指定することもできます。

関数名(’田口君’, ’20歳’)のように指定すれば、$ageを出力する場所に反映することも可能です。

function output_studier($name, $age){
  echo $name . $age . 'はWebプログラマーを目指して勉強しています。';
} 
output_studier('田口君', '20歳');

【実行結果】

田口君20歳はWebプログラマーを目指して勉強しています。

1回関数を作っておけば、あとはいろんな場面で「関数名(); 」って書けばその処理を実行できるんだね!
超便利じゃん!チョベリグ!

死語じゃん(笑)
関数はすごくよく使うし、便利だから覚えておこう!
使い方も簡単だしね!

【関数のポイント】

  1. 関数は、プログラムをまとめてパッケージ化したもの
  2. 書き方は、function 関数名(){ 処理内容 ; }
  3. 関数を使う時は、関数名(); と記述する
  4. 引数を使えば、処理内容はそのままに結果を変えることができる
  5. 引数は複数指定も可能

PHPの知識を一通り学んだら始めるべきこと

ここまででPHPの入門者が学んでおくべき基礎知識については、ほとんど学べました。

しかし知識だけを持っていても、実際にPHPのプログラムを書くのは難しいでしょう。

では、基礎知識を得たら何をすればよいのでしょうか?

答えは、「プロゲートで一通り学び、自分のサービスを作ってみる」です。

progate,プロゲート

プロゲートとは、手を動かしながら体系的にプログラミングを学べる、プログラミング学習ツールです。

用意するものは一切なく、すぐにPHPを学び始められるますよ♪

ここで学んだ基礎知識も復習しながら、入力フォームなどを作成していくので、PHP入門者が取り組めば大きくレベルアップできるでしょう!

PHPに関しては途中まで無料で学べます。

ある時点から、月額980円で学ぶことになりますが、低価格なので迷わず取り組んでみてください!

基礎を学んだイメージを、形にできるのでおすすめです。

プロゲートはこちら

プロゲートはわかりやすくていいよね♪

そうだね!あのホリエモンも絶賛してたしね!

XAMPPの設定は少し手間がかかるから、準備無しでPHPを始められるのはでかいぜ!

プロゲートが終わったら、自分でサービスを作ってみましょう!

「え?もう自分でサービスをつくるの?」と思ったかもしれませんが、以下の理由があるからです。

【自分でサービスを作った方が良い3つの理由】

  1. 学んだことをアウトプットできるから身に付きやすい
  2. わからないことを自分で調べるから、検索スキルが身につく
  3. 作ったサービスは「ポートフォリオ」という作品集に載せられるから、就職で有利になる

これは他のページでもよく言ってるよね!

そうだね!自分でサービスを作るのはものすごく重要だ!
自分のレベルアップにつながるし、就職にも有利だから一石二鳥だしね!

でも、キャバコは学んだだけで満足しちゃいそう(笑)

それだけはやっちゃダメ!(笑)
知識を勉強しただけだと絶対にPHPはできるようにならない。
まずは「働けるレベルになる」を目標に、どんどん行動しよう!
何度も言うけど、PHPは誰でもできるようになるぜ!

ふぁーい!がんばるっ!

もし、「プロゲートを学んだけどまだちょっと自信ない…」って人は、プログラミングスクールも視野に入れよう!
正直、プログラミングに関してはスクールに通った方が断然伸びる。
ぼくも独学は途中で辞めて、スクールに通ってからグンと伸びたからね。
プログラミングスクールについては以下の記事でまとめてあるぜ!

PHPを学べるスクール13社を現役エンジニアが徹底比較してみた。

メニューを閉じる