繰り返し - for文

「for文」で繰り返し

  • 1つの処理をX回繰り返す「ループ」という発想(繰り返す回数が決まっている)
  • 例:5日分の日付を表示→1日分の日付表示を5回繰り返す
  • 例:10人分の名簿の印刷→1人分の名簿印刷を10回繰り返す
「for文」で、一定回数の繰り返し処理ができる
  • 「ループカウンター」を使って、繰り返し回数を記述する
  • 「初期値」「終了条件」「増分値」の3要素がポイント

for( 初期化の式1;繰り返すかを調べる式2;変化のための式3 )
  処理;


《1から5まで表示するfor文》

<?php
for ( $i = 1; $i <= 5; $i++ ) {
  echo $i;
}
  • 「$i++」は、変数「$i」が1ずつ加算する

  • for文とwhile文
<?php
// ループ(for)

/*
$i = 0;
while ($i < 10) {
    echo $i;
    $i++;
}
*/

for ($i = 0; $i < 10; $i++) {
    echo $i;
}
  • 「$i=0; 」か「$i=1; 」の判断は、カウンター変数の値の回数のみを利用する場合は「$i=0; 」
  • 表示に利用する場合は必然性に合わせて「$i=1; 」の「1」が変わります


《例:連続した5日分の日付を表示する》

<?php
for ( $i = 17; $i <= 21; $i++ ) {
  echo '6月' . $i . '日<br>';
}


《例:指定個数の画像を表示する》

<?php 
$num = 10;

  for ( $i = 1; $i <= $num; $i++ ) {
    echo '<img src="img/' . $i . '.jpg"><br>' . "\n";
  }
「ループカウンター」を活用する
  • PHP関数のパラメータに「ループカウンター」を埋め込む

指定した5日分の日付を表示する

  • 2月~3月にまたがる5日分
  • 「ループカウンター」は、(-2, -1, 0 ,1, 2)となります
  • 2月30日はないので、29日が「0:基準」になります

《2016年7月3日までの7日間を表示》

<?php
for ( $i = -3; $i <= 3; $i++ ) {
  echo date ( 'Y-m-d', mktime ( 0, 0, 0, 7, $i, 2016 ) ) . "<br>\n";
}

今日から5日分の日付を表示する

<?php
for ( $i = 0; $i < 5; $i++ ) {
  echo date ( 'Y-m-d', strtotime ( +$i .' day' ) ) . "<br>\n";
}

繰り返し - while文

while文(while statement)とは

  • 条件がtrueである限り、指定した文を繰り返し処理する

while(条件){
  処理;
  …
}


《繰り返し表示する》

<?php 
$i = 1;

while ( $i <= 5 ) {
  echo '商品 ' .$i. ' を表示します。<br>' . "\n";
  $i++;
}
  echo '商品は以上です。';
  • 「商品が存在する」という条件がfalseになるまで、商品を表示することを繰り返します
  • while文では処理を始める前に、商品が存在しなければ商品を表示する処理はおこなわれません
  • 一般的に「繰り返し文」では、繰り返しをするかしないかを判断するための条件が変化するようにしておかないと、永遠に繰り返し処理が行われることになってしまいます
繰り返しの継続条件をもたせる
<?php
$a = 2;
$cont = 0;

while ( $cont < 6 ) {
  $a *= 2;
  echo $a. '<br>\n';
  $cont++;
}

do..while文

  • while文はまず最初に条件式の評価が行われるので、場合によっては一度もブロック内の処理が実行されないこともあります
  • do..while文は、必ず1回は処理を行います

do{
実行する処理1;
実行する処理2;
} while ( 条件式 );

《例》

<?php
// ループ(while)
$i = 0;

/* 
while ($i < 10) {
    echo $i;
    $i++;
}
*/

do {
    echo $i;
    $i++;
} while ($i < 10);

関係演算子と条件分岐(if文、switch文)

条件(condition)の仕組みを知る

  • 場合に応じた処理をおこなう
  • 真(true)・偽(false)という概念のどちらかで評価されるものを、PHPでは「条件」と呼びます。

関係演算子

  • 条件をつくるために使う「関係演算子(relational operator)」


演算子 式がtrueとなる場合
== 右辺が左辺に等しい
=== 右辺が左辺に等しく型も等しい
!= 右辺が左辺に等しくない
<> 右辺が左辺に等しくない
!== 右辺が左辺に等しくないか、型が等しくない
> 右辺より左辺が大きい
>= 右辺より左辺が大きいか等しい
< 右辺より左辺が小さい
<= 右辺より左辺が小さいか等しい

関係演算子を使って関係を記述
<?php
5 > 3; //この条件の評価はtrueです
5 < 3; //この条件の評価はfalseです
$a == 6; //この条件の評価は変数 $a の値によって異なります(この場合は6に等しい)
$a != 6; //この条件の評価は変数 $a の値によって異なります(この場合は6とは異なる)

条件分岐

  • 基準で枝分かれするという発想
枝分かれの仕組みは「条件分岐」
  • 昼だったら「こんにちは」と表示
  • 夜だったら「こんばんわ」と表示
  • 18時を基準にする

条件に応じて枝分かれする処理

  • 条件:いまの時刻は18時以降である
  • 条件を満たす:「こんばんは」と表示
  • その意外の場合:「こんにちは」と表示

if文(if statement)

  • 「条件」の値(trueまたはfalse)に応じて処理を行う
  • このような文を条件判断文(conditional statement)と呼びます
  • if文は、条件判断文のひとつ
  • 条件に応じて実行する処理を記述
  • if文は、「もし、条件xにあてはまるのであれば、Aの処理をする」というように処理を分岐させます
  • その条件x を記述するためには関係演算子や論理演算子などを使い、その結果がTRUE(あてはまる)の場合は、Aの処理を実行します

if ( 条件x ) {
 条件xがTRUEの場合に実行する処理A
}

 ※条件xがTRUEの場合処理Aを実行し、そうでない場合は実行されません

  • if文の条件を条件式と呼びます
  • 条件式は、結果がboolean型のTRUEかFALSEでなければいけません
<?php
  // 変数$xに10を代入
  $x = 10;
  
  // 変数$yに10を代入
  $y = 10;
  
  // $xは$yより小さいか否かを判定
  if( $x < $y ) {
    // $xは$yより小さくない(FALSE)ため、「PHPは、楽しいです!」は出力されません
    echo 'PHPは、楽しいです!';
  }

ifで条件分岐

  • if ... else ...
  • if ... elseif ... else ...
  • if文の別の構文(endifを使う)

if ( 条件x ) {
 条件xがTRUEの場合に実行する処理A
} else {
 条件xがFALSEの場合に実行する処理B
}

<?php
  // 変数$xに70を代入(合格点)
  $x = 70;
  
  // 変数$yに80を代入(テストの点)
  $y = 80;
  
  // $y(テストの点)が$x(合格点)より上か否かの判定
  if ( $x <= $y ) {
    echo 'テストは合格!'; 
  } else {
    echo 'テストは不合格・・・';
  }

「いまの時間は18時以降?」の条件を組み立てる

  • date関数の最初のパラメータに「G」を指定すると、0~23までの「時」が返されます
  • この数値を「変数 $hour」に格納して、時刻が18時を過ぎているかどうかの判断に使います
  • if文の()には、この値「 $hour」が、18以上かどうかかを示す条件文($hour >= 18)を記述します
<?php
  $hour = date( 'G' );
  
  if ( $hour >= 18 ) {
  	echo 'こんばんは';
  } else {
  	echo 'こんにちは';
  }
?>


一致しないことを調べる条件
<?php
  $hour = date( 'G ');
  
  if ( $hour != 12 ) {
  	echo 'いまは昼休みではありません!';
  }
?>


  • 早朝の5時より前も「こんばんは」と表示したい場合
<?php
  $hour = date( 'G' );
  
  if ( $hour >= 18 or $hour < 5 ) {
  	echo 'こんばんは';
  } else {
  	echo 'こんにちは';
  }
?>

三項演算子

条件式 ? 式1 : 式2

  • 条件式を評価し、TRUEであれば式1、FALSEであれば式2を返します
<?php
// 条件分岐(if)

// 三項演算子(条件演算子)

$age = 10;

/*
if ($age > 20) {
    $message = '大人!';
} else {
    $message = '子供!';
}
*/

$message = ($age > 20) ? '大人!' : '子供!';
echo $message;
2種類の論理演算子
<?php
// && は = より優先順位が高いので、$x には false が入ります。
$x = true && false;

// 以下と同等
$x = (true && false);
<?php
// and は = より優先順位が低いので、$x には true が入ります。
$x = true and false;

// 以下と同等
($x = true) and false;
  • どちらを使っても構いませんが、混乱しないようにコードの中ではどちらか一方を使うようにしましょう
<?php

// 条件分岐(if)
// 比較演算子 < > <= >= == !=
// 論理演算子 &&(AND) ||(OR) !(NOT)

$age = 23;

if ($age == 20 || $age == 21) {
    echo '成人式!';
}
PHPで「偽」と扱われるもの
  • プログラミング言語によって何が「真(true)」で何が「偽(false)」かはマチマチです。PHPでは false 以外で特に、
    • 数値の 0 や 0.0
    • 文字列の "0"
    • 空の配列

 などが「偽(false)」として扱われることに注意しておきましょう。

<?php
$x = '0';
if ( $x ) {
  echo '1番目';
} else {
  echo '2番目';
}
  • 上記のコードでは $x は文字列の "0" なので、「2番目」と出力されます

switchで条件分岐

  • 選択肢の多い処理をすっきり扱う
  • ある変数$xが値1ならば、処理A、値2ならば、処理B、値3ならば、処理C・・・」というように処理を分岐させることができます
  • switch文では式の値を評価し、caseの後に記述された値と順次比較していきます
  • もし一致する値があった場合にはその後に記述された処理を順次処理していきbreakに達したら終了します
  • case処理の中に、breakを書かないと、判定がTRUEとなるcaseの処理が実行された後、それ以降のcaseの処理も判定に関係なく、全て通ってしまいます
  • 通常は、breakを書くことにより、どこかのcase処理でTRUEとなり、処理がされたら、それ以降のcase処理を行わないようにします
  • 「default」には、どれにも当てはまらなかった時の処理を記述します

switch ( 変数または式 ) {
 case 値1 :
  変数または式の値が値1の場合に実行する処理A
  break;
 case 値2 :
  変数または式の値が値2の場合に実行する処理B
  break;
 case 値3 :
  変数または式の値が値3の場合に実行する処理C
  break;
 default :
  変数または式の値が値1から値3以外の場合に実行する処理D
}

<?php
// 条件分岐(switch)

$signal = 'red';

switch ($signal) {
    case 'red':
        echo '止まれ!';
        break;
    case 'blue':
    case 'green':
        echo '進め!';
        break;
    case 'yellow':
        echo '注意!';
        break;
    default:
        // 例外処理
        break;
}

曜日ごとのメッセージ

  • 日曜日:今日は定休日です
  • 月曜日:9時~22時まで営業
  • 火曜日:9時~22時まで営業
  • 水曜日:特売日! 7時~24時まで営業
  • 木曜日:9時~22時まで営業
  • 金曜日:9時~22時まで営業
  • 土曜日:12時~20時まで営業


これを「if文」で処理しようとすると「elseif」が多くなり、何に対しての「それ以外は」なのかわかりにくくなります。

選択肢から1つを選ぶ仕組みがあると便利
  • 0(日曜日)の場合:「今日は定休日です」と表示
  • 1(月曜日)の場合:「9時~22時まで営業」と表示
  • 2(火曜日)の場合:「9時~22時まで営業」と表示
  • 3(水曜日)の場合:「特売日! 7時~24時まで営業」と表示
  • 4(木曜日)の場合:「9時~22時まで営業」と表示
  • 5(金曜日)の場合:「9時~22時まで営業」と表示
  • 6(土曜日)の場合:「12時~20時まで営業」と表示


「曜日」という基準を使って、当てはまる選択肢の処理を実行すればよい。

  条件分岐(曜日番号が) {
  	0の場合:「今日は定休日です」と表示
  	3の場合:「12時~20時まで営業」と表示
  	6の場合:「12時~20時まで営業」と表示
  	それ以外の場合:「9時~22時まで営業」と表示
  }
曜日ごとに挨拶を切り替える
  • 「break文」は、「switch文」から抜けるための命令です
<?php
switch(曜日番号){
    case 0:
  	 echo '今日は定休日です';
  	 break;
    case 3:
  	 echo '特売日! 7時~24時まで営業';
  	 break;
    case 6:
  	 echo '12時~20時まで営業';
  	 break;
    default:
  	 echo '9時~22時まで営業';
}
?>
  • 実際の記述は、以下のようになります
<?php
  $w = date ( 'w' );
  
  switch ( $w ) {
    case 0:
      echo '今日は定休日です';
      break;
    case 3:
      echo '特売日! 7時~24時まで営業';
      break;
    case 6:
      echo '12時~20時まで営業';
      break;
    default:
      echo '9時~22時まで営業';
}
?>
  • 「月曜日」の場合


switch文で「おみくじ」を作る

  • 「mt_rand関数」は、指定した範囲の数値をランダムに作成します
  • 「mt_rand(1, 5)」と指定すると、1から5までの数値がランダムに作成されます
<?php
$a = mt_rand ( 1, 5 );
  
switch ( $a ) {
  case 1:
      echo '大吉';
      break;
  case 2:
      echo '中吉';
      break;
  case 3:
      echo '小吉';
      break;
  case 4:
      echo '';
      break;
  default:
      echo '';
}
?>

式と演算子

式(expression)

PHPの式の多くは、

を組み合わせてつくられています。

式の評価
  • 式の計算が、式の評価にあたります
  • 評価された結果を「式の値」と呼びます

演算子

  • 簡単な計算をしたり長い文字列をつなぎ合わせる
  • 代入演算子
  • 数値の演算
  • 文字列の演算
  • 単項演算子
  • 代入を伴う演算子
算術演算子で「四則演算」や「変数の結合」
<?php
  $tanka = 300;
  $suryo = 10;
  $waribiki = 500;
  $total = $tanka * $suryo - $waribiki;
  echo $total;
文字列結合演算子
<?php
  $tanka = 300;
  $suryo = 10;
  $waribiki = 500;
  $total = $tanka * $suryo - $waribiki;
  echo '合計金額は、' . $total .  '円です。';
?>

結合代入演算子
  • 変数の後に新たな文字列を継ぎ足しできる演算子
<?php
  $temp = '鈴木さん、';
  $temp = $temp . 'こんにちは。';
  $temp = $temp . '今日は月曜日です。';
  echo $temp;


「結合代入演算子」を使って書き換えます。

<?php
  $temp = '山本さん、';
  $temp .=  'こんにちは。';
  $temp .=  '今日は月曜日です。';
  echo $temp;

演算子の種類

記号 名前 記号 名前
+ 加算 == 等価
- 減算 === 等価
* 乗算 != 非等価
/ 除算 <> 非等価
% 剰余 !=== 非等価
+ 単項+ ! 論理否定
- 単項- && 論理積
~ 補数 || 論理和
& ビット論理積 and 論理積
| ビット論理和 or 論理和
^ ビット排他的論理和 xor 排他的論理和
= 代入 , 順次
<< 左シフト () 関数呼び出し
>> 右シフト () キャスト
++ インクリメント [] 配列添え字
-- デクリメント @ エラー制御
> より大きい -> メンバ参照
>= 以上 ? : 条件
< 未満 new オブジェクト作成
<= 以下 instanceof オブジェクトのクラス

インクリメント・デクリメント

  • 「++」演算子は、インクリメント演算子(increment operator)と呼ばれます
  • 「--」演算子は、デクリメント演算子(decrement operator)と呼ばれます
  • 何らかの処理を1つずつ値を増やしたり減らしたりの繰り返しを1回ずつカウントするために用いられます
変数$aの値を1増やします
<?php
$a++;
値を1増やす演算は、このようにも書けます
<?php
$a = $a + 1;
変数$aの値を1減らします
<?php
$a--;
値を1減らす演算は、このようにも書けます
<?php
$a = $a - 1;

代入演算子(assignment operator)

  • 左辺の変数に右辺の値を代入する

記号 名前
+= 加算代入
-= 減算代入
*= 乗算代入
/= 除算代入
%= 剰余代入
$= 論理積代入
^= 排他的
|= 論理和代入
<<= 左シフト代入
>>= 右シフト代入

$a+$bの値を$aに代入

<?php
$a += $b;

演算子の優先順位

  • 通常の四則演算と同じです。
  • カッコ内が先に評価されます。
左結合(left associative)
<?php
($a + $b) + 1
右結合(right associative)
<?php
$a = ($b = 1)


《例》

<?php
// 演算子

// 代入演算子 = 
$x = 5;

// 数値に関するもの + - * / %
// echo (10 % 3) * 5;

// 文字列の連結演算子 .
echo 'hello ' . 'world';

// 単項演算子 ++ --
$x++; // $x = $x + 1
++$x;

// 代入を伴う演算子
$x += 5; // $x = $x + 5;
$x *= 5; // $x = $x * 5;

文字列の連結

  • 「ドット」は、文字列連結演算子と呼びます。
  • 変数を連結するだけの場合は、{ }は不要です。

変数と定数

変数(variable)とは

  • 変数はプログラム中のメモリ領域に付けた名前です
  • さまざまな値を一時的に記憶しておくために使われます
  • 言葉(文字列)や数字(数値)を一時的に保存する「箱」
  • 繰り返し使う言葉は「変数」として使う
  • 1回だけ書いてコピーするという発想
変数の名前付けルール
  • 変数宣言や型の宣言は必要ない
  • 変数の名前は「$」で始める(数字で始めることはできない)
  • 変数名の先頭は英文字かアンダースコアであること
  • 変数名の2文字目以降は、英数字かアンダースコアであること(「- ハイフン」は不可)
  • 変数名の大文字・小文字は区別される

予約語について

  • 変数名のルールとしてもうひとつ、「予約語は使えない」というものがあります。予約語とはPHPの言語自体に使われているさまざまな語句です。
  • 詳細は以下にまとまっていますのでざっと眺めておくと良いでしょう。

予約語の一覧

読みやすいコードのための名前付け
  • 変数の中身を理解しやすい
  • 長すぎたり、省略し過ぎたりしない
  • 似たような名前を付けない
  • 基本的には英単語
  • 決められた記法で統一する(キャメルケース記法、アンダースコア記法、Pascal記法)
変数の使い方
  • 変数名を付けて文字列や数値を格納する
  • 変数名は英単語で命名するのが一般的

あいさつを変数に格納する

<?php
  $message = 'こんにちは';

変数に格納したあいさつを表示する

<?php
// 変数:値につけるラベル

// $から始まる
// 英数字_が使える
// $のあとは数字はだめ
// 大文字小文字は区別される apple Apple

$message = 'Hello World!';
echo $message;
変数に対する処理の違い
  • ダブルクォーテーション ・・・文字列中の変数を展開する
  • シングルクォーテーション・・・文字列中の変数を展開しない

扱えるデータ型について

  • 扱えるデータ型について
  • var_dumpを使って型を調べる
<?php
// 変数:データにつけるラベル

// 文字列 "" ''
// 数値(整数、小数)
// 論理値(true/false)
// null(何もない)
// 配列
// オブジェクト

$message = 'Hello World!';
$x = 5;
$y = 1.22;
$flag = true;
$n = null;

var_dump($message);
var_dump($x);
var_dump($y);
var_dump($flag);
var_dump($n);

定数

  • 途中で中身を変更できない入れ物のことを「定数」と呼びます
定数と変数の違い
  • 定数に一度何かデータを代入するとそれが固定値となり、それ以降プログラム処理の中で違うデータに変更することはできません

define ( '定数名', '値' );

《例1》

<?php

// 変数:データにつけるラベル(変更可能)

// 定数:変更不可

define( 'ADMIN_EMAIL', 'admin@gmail.com');
define( 'LIST_COUNT', 15);

echo ADMIN_EMAIL;

《例2》

<?php
  define ( 'BIRTHDAY', '9月15日です' );
  echo ( BIRTHDAY );  // 定数BIRTHDAYを表示します

データの型

数値型 整数型(integer)

-2、0、108など

浮動小数点型 1.414、0.5、5.5e6など

文字列型(string)

'こんにちは' など
真偽型(bool、boolean)

TRUE、FALSE

複合型(array、resource、object) 上に含まれない複合的な型

文字列の表現には注意
  • 以下の例では、変数展開が必要な「改行」処理に「ダブルクォート」を設定しています
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>PHP入門教室</title>
</head>
<body>
<?php
  $url = 'http://www.felica.info/kikin/web.shtml';
  $memo1 = "フェリカテクニカルアカデミー - Webサイト制作科( {$url} )";
  $memo2 = 'フェリカテクニカルアカデミー - Webサイト制作科( ' . $url. ' )';
  echo $memo1 . '<br>' . "\n";
  echo $memo2 . "\n";
?>
</body>
</html>

変数の中身を調べる

  • var_dump( $変数名 ) 関数
  • 記述をしている途中で変数の内容を確認するには、var_dump($変数名); という1文をコードの中に記述すると、変数の型と値を出力することができます
変数を使った出力
<?php
//[$]変数宣言
//変数名は半角英数+_(アンダースコア)
//先頭文字は数字禁止!!
$mikan = 'みかん';
$ringo = 'りんご';
//変数宣言などの出力に関係ないものはうえに書く。
?>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>PHPの変数</title>
</head>
<body>
<?php
//出力に関係するものはbody内に書く。
//echo $mikan,$ringo;
//print $ringo,$mikan;
echo "私が好きなのは{$mikan}{$ringo}です";
//[""]ダブルクォートは変数を展開できる。変数は{}波カッコで囲う。
echo '私が好きなのは $mikan と $ringo です';
//
//phpの終了タグ。他の言語があるときは入れる。ない時は入れない。
?>
</body>
</html>

まとめ

  • 変数は、データを一時的に保管するための入れ物です
  • 変数は、変数に値が最初にセットされたタイミングで自動的に準備されます
  • 変数の名前は「$」で始まらなければなりません

PHPのコードを記述

PHPコード記述

新規ドキュメント作成
記述のルール
  • 「<?php」と「?>」の間に記述する
  • 文字列は「シングルクォート」で囲むことにします
  • 命令文の末尾はセミコロンで終わる
  • キーワードは半角空白で区切る
  • 大文字・小文字は区別しない(ミスの原因にもなりやすいので小文字に統一)
  • コメントアウトにより処理の概要を記しておく
  • インデントは、一定のルールに従って「スペース」か「タブキー」を使う
PHPのみを記述
  • スクリプトブロックのみの「.php」ファイルの場合、「?>」は記述しない
<?php
 ここにPHPスクリプトを記述
HTM内にPHPを記述する
<?php
 ここにPHPスクリプトを記述
?>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>HTM内にPHPを記述</title>
</head>
<body>
 ここにPHPスクリプトを出力する記述
</body>
</html>

出力

  • 「出力(ブラウザに表示する)」は、echo文で記述します
PHPで文字を表示する

PHPスクリプトで文字を表示するには「echo」か「print」を使います。

  • echoもprintも「その後に続く文字をブラウザに出力」する命令
文字列リテラル(string literal)
  • 「" "」「' '」引用符で囲んで記述する
コメントアウト
  1. 「//」以降、行末(改行)まで。(C++形式)
  2. 「#」以降、行末(改行)まで(シェル・Perl形式)
  3. 「/*」以降「*/」まで。間に改行を含む事ができます。(C形式)
<?php
// コメント
echo 'Hello World!'; // コメント
/*
コメント
*/
?>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>HTM内にPHPを記述</title>
</head>
<body>
<p>こんにちは!<?php echo 'hi!'; ?></p>
</body>
</html>

エスケープシーケンス(escape sequence)

  • 1文字では表せない特殊な文字

エスケープシーケンス 意味している文字
\t 水平タブ
\n 改行
\r 復帰
\" "
\\ \
\$ $
\ooo 8進数ooo文字コードをもつ文字
\xhh 16進数hhの文字コードをもつ文字

改行処理

  1. ブラウザ上での改行は'<br>'を入れる
  2. ソース上での改行は"\n"を入れる

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>クォートの選択とエスケープ処理</title>
</head>
<body>
<?php
  echo "ダブルクォートで特殊文字の「\\n」を出力します。<br>\n";
  echo 'シングルクォートの場合は「\n」はそのまま出力されます。' . "\n";
?>
</body>
</html>


《ダブルクォートの場合》

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>ダブルクォートの選択</title>
</head>
<body>
<?php 
  echo "<ul>\n";
  echo "<li>WordPress</li>\n";
  echo "<li>Joomla</li>\n";
  echo "<li>EC-Cube</li>\n";
  echo "</ul>\n";
?>
</body>
</html>  


《シングルクォートの場合》

<?php 
  echo '<ul>' . "\n";
  echo '<li>WordPress</li>' . "\n";
  echo '<li>Joomla</li>' . "\n";
  echo '<li>EC-Cube</li>' . "\n";
  echo '</ul>' . "\n";
?>
ヒアドキュメント(here document)を出力する
  • ヒアドキュメントは、名前をつけた文字列を出力する
  • 改行を含む長文を変数に代入したい場合によく使われます

echo <<< 開始ID


終端ID;

開始IDの注意点

  1. 開始IDの前後に全角空白があるとIDはその空白も含めたものになる
  2. 開始IDの後ろにタブと半角スペースは入れられない
  3. <<< とIDの間にはタブと半角スペースを入れられる
  4. 開始IDの後ろにはコメントもつけられない

終端IDの注意点

  1. 終端IDは必ず行頭に置かなくてはならない
  2. 終端IDの行には「;」(セミコロン)以外置いてはならない
  3. タブやスペースでのインデントもセミコロンの前後に空白も不可
  4. コメントもつけられない
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>サンプル</title>
</head>
<body>
<?php 
 echo <<< PAGE
 <ul>
 <li>WordPress</li>
 <li>Joomla</li>
 <li>EC-Cube</li>
 </ul>
PAGE;
?>
</body>
</html> 

数値リテラル

  • 「" "」「' '」で囲んで記述しない
  • 整数リテラル(integer literal)
  • 不動小数点数リテラル(floating-point literal)
  • 8進数:数値の先頭に 0 をつける
  • 16進数:数値の先頭に 0x をつける
<!DOCTYPE html>
<html lang="ja")>
<head>
<meta charset="UTF-8")>
<title>数値リテラル</title>
</head>
<body>
<?php
  echo '<ul>' . "\n";
  echo '<li>10進数の10は、';
  echo 10;
  echo '</li>' . "\n";
  echo '<li>8進数の10は、';
  echo 010;
  echo '</li>' . "\n";
  echo '<li>16進数の10は、';
  echo 0x10;
  echo '</li>' . "\n";
  echo '<li>16進数のFは、';
  echo 0xF;
  echo '</li>' . "\n";
  echo '</ul>' . "\n";
?>
</body>
</html> 


10進数 2進数 8進数 16進数
0 0 0 0
1 1 1 1
2 10 2 2
3 11 3 3
4 100 4 4
5 101 5 5
6 110 6 6
7 111 7 7
8 1000 10 8
9 1001 11 9
10 1010 12 A
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F
16 10000 20 10
17 10001 21 11
18 10010 22 12
19 10011 23 13
20 10100 24 14

まとめ

  • PHPソースコードは「.php」という拡張子をつけて保存する
  • PHPのコードは、「<?php」から「?>」のブロック中の中で記述する
  • 命令文はセミコロンで終わらなければならない
  • PHPの命令文では、大文字・小文字の区別をしない
  • コメントは「//」で1行、「/*~*/」で複数行で記述する
  • echo命令は、指定された文字列を出力する

PHPとは何か?

プログラミング言語

  • コンピュータや機械を動かすための命令(コマンドといいます)群でコンピュータで何かを実行(処理)するための言語」です
オブジェクト指向
  • オブジェクト指向とは、システムの設計に関する考え方、プログラミング手法を表現したものです
  • 操作(処理)対象としてのモノ(オブジェクト)の集まりが、お互いにメッセージを送りあって、全体の処理が行われるという考え方です
  • プログラムの塊であるオブジェクトを連携し、一つのシステムを動作させる仕組みです
  • オブジェクト指向を利用した開発は、「小さい部品を作り、組み合わせる」というような開発になりますので、作成した部品を再利用したり、システムの修正が必要となったときに、該当箇所の部品のみを修正したりと、開発効率やメンテナンス性の向上が図ることができます

サーバサイドスクリプト

  • PHPはサーバサイドスクリプトの1つで、CGIと同様、動的にWebページを生成するための言語です
  • HTMLに埋め込む事ができる(HTML文書のうち必要な部分だけをPHPで書く)
  • PHPはウェブサーバのモジュールとして組み込む事ができる為、CGIよりも高速に動作する

スクリプト言語

PHPとは何か?

  • PHP は動的に Web ページをつくるためのプログラミング言語
  • データを加工したり、ユーザーの入力を受け付けたりする
  • PHP はサーバーサイド(サーバー側)で動く言語

PHP: Hypertext Preprocessor(ピー・エイチ・ピー ハイパーテキスト プリプロセッサー)とは、動的にHTMLデータを生成することによって、動的なウェブページを実現することを主な目的としたプログラミング言語、およびその言語処理系である。

実行環境

  1. Webサーバー(Apache HTTP Server)
  2. PHPPHP:Hypertext Preprocessor)
  3. MySQL(データベース)
Webサーバー
  • Webサーバーはブラウザが開こうとしているURLを解釈して、対応するWebサイトの情報を探し出してデータを返してくれるソフトウェアです
  • http://localhost/とすることで、自分のコンピューターで動いているWebサーバー(=Apache)に接続するという事になります
  • 「C:\xampp\htdocs」のことを、ドキュメントルート(Document Root)とかルートディレクトリと呼びます
  • ディレクトリ」というのはフォルダの別の呼び方です
コード入力と実行
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>動作確認</title>
</head>
<body>
<?php phpinfo(); ?>
</body>
</html>

f:id:webmaster-web:20160611224433p:plain

公式サイトについて

f:id:webmaster-web:20160529095522p:plain

f:id:webmaster-web:20160529095958p:plain