まとめ演習(2)

PHPで変数

  • 代入:=の右の値を、=の左側に入れる
  • 先頭に $ を付ける
  • 使用できる文字は、アルファベットと半角数字、そしてアンダースコア
  • 大文字・小文字を区別する
  • 値を変数に代入すれば適当なデータ型を設定してくれます

関数

  • 指定された値に対して決められた処理を行い、結果を出力する
  • 関数が出力するデータは「返り値」、もしくは「戻り値」と呼びます
  • 関数名の後ろにある ()中に入れたデータを処理し、その結果を返します
  • ()内に入れたデータのことを引数(ひきすう)と呼びます
  • 引数を必要としない関数にも()を付ける必要があります

PHPで日時を扱う

PHPで変数の演算
  • 変数a:1000円の商品は、
  • 変数b:80円値上がりしたら1080円になります。
  • 変数a と変数b の足し算をした結果を表示しなさい
サイコロの目を数字で表示
  • rand()関数を使って結果を表示させなさい
九九表をPHPで作りなさい
  • for文のネスト
  • tableをfor文で生成する場合は、「行」を基準に設定する



2013年9月のカレンダーを作りなさい

























解答例

数値で始まる文字列の場合
for文のネスト
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>九九表</title>
<style>
table {
  border-collapse: collapse;
}
th, td {
  width: 50px;
  text-align: center;
}
th {
  background: #CCC;
}
</style>
</head>
<body>
<h1>九九表</h1>
<table border="1">
<tr>
<th>&nbsp;</th><th>1</th><th>2</th><th>3</th><th>4</th><th>5</th><th>6</th><th>7</th><th>8</th><th>9</th>
</tr>
<?php
for ($i = 1; $i <= 9; $i++) {
  print ('<tr>');	
  print ('<th>' .$i. '</th>');
    for ($j = 1; $j <= 9; $j++){
      print ('<td>' .$i*$j. '</td>');					
    }
  print ('</tr>' . "\n");
}
?>
</table>
</body>
</html>
今月のカレンダー
<?php
//現在の「年月」を取得
$now_year = date("Y");
$now_month = date("n");

//1日(月初)のタイムスタンプから「曜日」を取得
$first_day = mktime( 0, 0, 0, $now_month, 1, $now_year );
$first_weekday = date( "w", $first_day );
?>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>カレンダー</title>
<style>
h3 {
  margin: 0 0 10px 0;
}
table {
  border-collapse: collapse;
  margin: 0;
  padding: 0;
}
th,td {
  width: 50px;
  padding: 8px;
  text-align: center;
}
th.sun {
  color: red;
}
th.sat {
  color: blue;
}
</style>
</head>
<body>
<h3><?=$now_year?><?=$now_month?></h3>
<table border="1">
<tr>
<th class="sun"></th>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
<th class="sat"></th>
</tr>
<?php
print "<tr>";  // 最初の<tr>
$weekday = 0; //曜日のカウンタ

//1日の曜日まで空欄必要
while( $weekday != $first_weekday ){
  print ('<td>&nbsp;</td>');
  $weekday++;
}
for( $day = 1; checkdate( $now_month, $day, $now_year ); $day++ ){
  //土曜まで書いたなら日曜に戻して
  //行を変える
  if( $weekday > 6 ){
    $weekday = 0;
    print ('</tr>' . "\n");
    print ('<tr>');
  }

  //文字の色を決める
  switch( $weekday ){
    case 0 : //日曜
      $color = 'red';
      break;
    case 6 : //土曜
      $color = 'blue';
      break;
    default : //月曜〜金曜
      $color = 'black';
  }
  //1マス表示
  print ('<td><font color=' .$color. ">" .$day. '</td>');
  //曜日を進める
  $weekday++;
}
//最後の空欄作成
while( $weekday < 7 ){
  print ('<td>&nbsp;</td>');
  $weekday++;
}
print ('</tr>' . "\n");  // 最後の</tr>
?>
</table>
</body>
</html>