【プロゲート】PHP PHP Iの学習内容まとめ
PHP I
1.echo
PHPを学ぼう
・PHPを学べば、ユーザーからデータを受け取りそれを表示するなど、実際のWebサービスで必要な機能を作ることが出来る
PHPとは?
・PHPを使うと見る人や状況に応じて表示するテキストを変えられる
PHPの書き方
・PHPはHTMLに埋め込んで使うことができる
・<?php 〜 ?>の中にPHPの命令を書いていく
・<?php 〜 ?>の部分がHTMLに変換された上で表示される
PHPの文法
・PHPでは文末にセミコロン「;」を使って文を区切る
・セミコロンを忘れるとエラーが起きるので注意
・また、「//」から行末まではコメントになる
・動作には関係しない情報で、主にメモなどに用いられる
文字列を出力しよう
・「echo」は文字列などを出力するための命令
・文字列を出力する場合はシングルクォーテーション「'」かダブルクォーテーション「"」で囲む
計算してみよう
・プログラミングを使えばコンピュータに計算させることが出来る
・足し算は「+」、引き算は「-」、掛け算は「*」、割り算は「/」、割り算の余りは「%」で表す
2.データの種類
データの種類
・PHPには、「文字列」や「数値」などのデータの種類がある
・「'Hello'」,「'a'」などは文字列、「1」,「3.14」などは数値となる
文字列と数値の違い
・数値として「 5 + 2 」を行うと7が出力されるが、「 5 + 2 」をシングルクォーテーションやダブルクォーテーションで囲むと、文字列と解釈されそのまま出力される
3.変数
変数とは?
・変数とは、データの入れ物
・頭に「$」記号をつけることによって変数を定義する
・「$変数名 = 値;」で様々な値を変数に入れることが出来る
・「=」はプログラミングの世界では右辺を左辺に代入するという意味
変数の役割
・変数を使うメリットは大きくわけて2つ
①データに名前をつけてそのデータが何を表しているか明確にできる
②複数回使うデータを1つの変数に入れておくことで、変更があった場合も1箇所の修正で済む
変数名の付け方
・変数名は自由につけることができるが、守らなければならないルールがいくつかある
・変数名を数字で開始したり、日本語を用いてはいけない
・また、読みやすいコードにするために、変数の名前から内容が想像できるような名前をつけることが望ましい
4.変数の値を更新する
変数の更新
・変数は中に入っている値を変更することもできる
・変数に、その後再び値を代入すると、後で代入した値によって変数の中身が上書きされる
変数に数字を足す(1)
・変数に数字を足したいときは、変数に数字を足した後、変数に再び代入する
・引き算など、その他の計算も同様
・「=」は代入の意味であり、左右の値が等しいことを表すわけではないことに注意
変数に数字を足す(2)
・変数に数字を足す場合には全ての計算で省略した書き方が出来る
変数に数字を足す(3)
・足す数字が1の時だけは、さらに省略した書き方が可能
・++を変数の前に書くとその行の命令が実行される前に足されるのに対し、++を変数の後に書くとその行の命令が実行された後に足される
・1だけ引くための--も同様です
5.文字列の連結
文字列を連結しよう
・ドット「.」記号を用いると文字列を連結することができる
・文字列同士の連結、変数と文字列の連結、変数同士の連結ができる
文字列を連結しよう(2)
・「.=」を用いると変数と文字列の連結を省略して書くことができる
変数展開
・ダブルクォーテーションで文字列を囲んだ場合、中の変数を{}で囲むとその部分が変数に入っている値で置き換えられる(変数展開)
・シングルクォーテーションで文字列を囲んだ場合は変数展開されず、変数が{}で囲まれていてもそのまま文字列としてみなされる
6.if文
if文
・if文を使うと、条件に応じて処理を分岐することができる
・条件が成り立つ場合、{}の中の処理が実行される
・条件が成り立たない場合は処理が実行されない
数値を比較しよう
・「>」のような2つの値を比較するための記号を比較演算子と呼ぶ
・比較した結果は真「true」か偽「false」のどちらかになる
if文と真偽値
・比較演算子を用いて比較した結果はtrueかfalseになる
・trueとfalseは真偽値と呼ばれる
・真偽値は文字列や数値といったデータの種類の1つ
・真偽値はtrueとfalseの2つしかない
・if文は条件式がtrueの場合if文の中身が実行されfalseの場合は実行されない
7.else, elseif文
else
・ifと組み合わせてelseを使うと、「もしも〜だったら・・・、そうでなければ・・・」といった条件分岐が可能になる
・if文の条件が「false」であった場合、elseの中の処理が実行される
elseif
・elseifを用いることで、「もしも〜だったら・・・、それとも〜であれば・・・、いずれでもなければ・・・」といった多岐分岐が可能になる
・elseifは必要な分岐の数だけ並べることができるが、複数の条件に合致した場合、実行されるのは最初に合致したブロックだけとなる
8.&&, ||
複数の条件式を組み合わせる
・「&&」と「||」は論理演算子と呼ばれ、複数の条件を1つにまとめる時に使う
・&&(かつ)は左右の式がともに「true」の場合、全体も「true」になる
・||(または)は左右の式のどちらか、または両方が「true」の場合、全体も「true」になる
条件の否定
・「!」も論理演算子の1つであり、条件の否定ができる
・式が「真」であれば「偽」に、「偽」であれば「真」になる
switch文
・if, elseifによる分岐が多く複雑な場合、switch文で書き換えるとシンプルで読みやすいコードにできる
・switch(式)の(式)がcaseの値と一致したとき、そのブロックが実行される
・caseのどれにも一致しなかった時、defaultのブロックが実行される
switch文 - break
・caseブロックの最後にはbreak命令を指定する
・break命令は現在のブロックから脱出するための命令
・break命令がないと、後ろに続くcaseブロックが続けて実行されてしまう
10.配列
配列とは?
・これまでの変数が一つしか値を扱えなかったのに対し、配列を用いると複数の値をまとめて保存することができる
・配列は仕切りのある箱のようなもので、それぞれのスペースにデータが入っており、0, 1, 2...というインデックス番号によってスペースの名前が付けられている
配列を使ってみよう
・配列の基本構文は「$配列名 = array(値1, 値2, ・・・);」のようになっている
・配列のデータには先頭から0, 1, 2, ・・・と順に「インデックス番号」が割り振られていく
・配列のデータを取り出すには「インデックス番号」を用いて $配列名[インデックス番号] とする
値の追加、上書き
・配列の末尾に値を追加するときは「$配列名[] = 値;」とする
・また、すでに存在するインデックス番号を指定すると、配列の値を上書きすることもできる
11.連想配列
連想配列を使ってみよう
・連想配列は、配列と同じく複数のデータをまとめて管理するのに用いられる
・配列との違いは、個々の要素を管理するのにインデックス番号ではなく、「キー」と呼ばれる文字列などの値を指定することができる点
・連想配列では「$配列名 = array('キー名' => '値1', ・・・);」といったように、「=>」を用いてキーと値をセットする
連想配列の使い方
・連想配列の値を取り出すには、対応する「キー」を用いて 「配列名[キー] 」のようにする
・「配列名[キー] = 値;」のようにすることで、連想配列にデータを追加することができる
12.for文
繰り返し処理
・1から100までの数値を出力するときのように、繰り返しで何かを行いたいときには繰り返し文を用いる
・繰り返し文を使うことで、繰り返しの処理(ループ処理)をたった数行で書くことができる
for文
・for文を用いることで繰り返し処理を行うことができる
・変数$iに1を初期値として与え、「echo $i;」を行っている
・その後はループの条件を満たさなくなるまで値の更新「$i++」と、「echo $i;」を繰り返し行う
13.while文
while文
・while文もfor文と同様に、繰り返し処理の一つ
・条件式を指定し、それがtrueの間、処理が繰り返し実行される
・for文の時のように変数$iが自動的に増えていかないため、ここではループのたびに「$i ++;」を行っている
無限ループ
・無限ループとは条件式が何周してもtrueのままで、永遠に終了しないループのこと
・無限ループはコンピューターに極端な負担を与えてしまうため、ループ処理を記述する際は条件式がどこかでfalseになるように気をつけなければいけない
14.break文
break
・break文は現在のループを強制的に中断する命令
・for, while, foreachなどの繰り返し文の中で利用できる
・break文はif文などの条件文と組み合わせて利用するのが一般的
15.continue文
continue
・ループそのものを完全に抜けてしまうbreak文に対して、continue文は現在の周だけをスキップし、ループそのものは継続して実行する
・continue文もfor, while, foreachなどの繰り返し文の中で利用できる
16.foreach文
foreach
・foreach文とは、配列または連想配列に対して、先頭のデータから順に繰り返し処理を行うための命令
・配列のデータを1つずつ取り出して処理を行うことができる
・「as」の後ろの変数にループの度にデータが先頭から順に代入されていく
・asの後ろの変数名は何を指定しても大丈夫
foreachの書き方(1)
・foreach文では、配列内のデータが順次「キー変数」、「値変数」に代入され、それに対して処理が繰り返し適用される
・「キー変数」には、配列のときはインデックス番号が、連想配列のときはキーが代入される
・ただし、「キー変数」の部分は省略可能
foreachの書き方(2)
・foreach文は理解しにくいので少し例を見てみる
・果物の名前を「キー」として、その色を「値」として保持している連想配列
・1周目のループでは$keyに'Apple'、$valueに'Red'が、2周目のループでは$keyに'Banana'、$valueに'Yellow'が入っている
17.関数
関数を使ってみよう
・関数とは、あるまとまった処理を行い、値を返すもの
・PHPには便利な関数がもとから組み込まれていて、それらは組み込み関数と呼ばれる
・「strlen」は組み込み関数の1つで、文字列の文字数を返す
・ここで、()の中に与える値を「引数」と言う
関数を使ってみよう
・他の組み込み関数も見てみよう
・「count」は配列の要素の数を返す関数
・「rand」は1つ目の引数と、2つ目の引数の間のランダムな整数を返す
・他にもPHPの組み込み関数は多数あるが、覚える必要はない
・目的に沿ってその都度便利な組み込みメソッドがないか検索して調べる
18.関数を自作する
関数を作ってみよう
・自分で関数を作成することもできる
・重複する処理を一箇所にまとめることで、コードに変更があった時に関数の中身を変更するだけで全使用箇所に変更を適用することができる
関数の作り方
・関数を作るには「function 関数名(){ 処理 }」という書き方をする
・関数名は自由につけることができる
・関数は「関数名()」というように()をつけて呼び出すことができる
引数
・関数を呼び出す際、関数に値を渡すと、関数内でその値を利用することができる
・この値を「引数」と呼ぶ
・引数を関数内で使うには、それを受け取るための「仮引数」を、関数の定義時に指定しておく必要がある
・仮引数が複数ある場合はカンマ(,)を用いて指定する
19.戻り値
戻り値
・関数は値を「返す」ことができて、この値のことを戻り値と呼ぶ
・関数を実行した結果、その関数実行部分が戻り値に置き換わるというイメージ
・戻り値は「return」で指定する
20.formタグ
フォームをつくろう
・お問い合わせフォームをつくっていきます。
・フォームの見た目はHTMLでフォームを作成し、入力値を取得するためにPHPを使用していく
フォームの準備をしよう
・フォームを作りたい時は、HTMLの<form>タグを用いる
・action属性にはデータを渡す先のURLを指定する
・method属性は値の送信の方法で「get」と「post」のどちらかを指定する
・getは送信される値がURLに表示され、postはURLに表示されない
21.テキストボックス
テキストボックスをつくろう
・テキストボックスをつくるにはHTMLの<input type="text">を使う
・name属性は入力された値を取得するときに使う名前で
・後にフォームのデータを受け取るときに使用する
・<input>タグは閉じタグが必要ないことに注意
テキストボックスをつくろう
・改行を含む文章のためのテキストボックスをつくるにはHTMLの<textarea>タグを用いる
・<input>タグと同様にname属性に、入力値を取得するときに使う名前を指定する
・<textarea>タグは閉じタグが必要なので注意
22.$_POST
送信ボタンをつくろう
・送信ボタンをつくるには<input type="submit">を用いる
・value属性に指定された値がボタン上に表示される
フォームのデータを受け取ろう
・フォームで送信した値を受け取るには「$_POST」を使用する
・「$_POST」は連想配列になっている
・[ ]の中に、<input>と<textarea>のname属性に指定した値を入れることで、それぞれの送信した値を受け取ることができる
23.セレクトボックス
セレクトボックスの作り方
・セレクトボックスをつくるには図のように<select>タグの中に<option>タグを並べる
・<option>タグの中身が選択肢として表示される
選んだ選択肢の値を渡そう
・セレクトボックスの値の渡し方を見てみよう
・<select>タグには「$_POST」で値を受け取るためのname属性を指定する
・<option>タグのvalue属性が送信される値
24.フォームを完成させよう
フォームを完成させよう
・繰り返し処理と変数展開を用いて多数のoptionタグを作る
・ただし、変数展開を用いる際はダブルクォーテーションで囲む