PHPの基本

html形式文書に動的な処理を行うスクリプトの埋め込み方
htmlの復習
サーバサイドスクリプトphpを埋め込むタグ
html文書中に埋め込む開始と終りのタグ
[練習1]
[練習2] コマンドラインでの利用法
文法の基本
文法の特徴
演算子
制御構造
繰り返し
条件分岐
配列変数の定義
多次元配列
[課題1]
連想配列
[課題2]
一言

html形式文書に動的な処理を行うスクリプトの埋め込み方

htmlの復習

htmlの文書形式の基本は

<!DOCTYPE HTML PUBLIC "-//w3c//dtd html 4.01 traditional//en">
<html>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">

  種々ヘッダー (生に表示されるものではない,各種設定など)

</HEAD>
<BODY BGCOLOR=white>

     本文

</BODY>

である. htmlの文法については,書籍あるいはWeb上の情報などを参照のこと. たとえば,

  1. charset(文字コードセット)は定義しておく.

    センターの新システムでは,emacsの日本語ファイル入出力コードがUTF-8になっているので,それを基本にしよう.

  2. スタイルシートについても,ある程度の文法を学んでおくこと.(上記サ イトにもある.)

サーバサイドスクリプトphpを埋め込むタグ

html文書中に埋め込む開始と終りのタグ

    <?php

        phpスクリプト

    ?>
のように,<?php と ?> で囲んで記述する.

例: (空行は見やすいために入れてあるもので意味はない.)

<!DOCTYPE HTML PUBLIC "-//w3c//dtd html 4.01 traditional//en">
<html>
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
</head>
<body>
<h2>PHP事始</h2>

<?php
$total = 0;
for($i=1; $i<10;$i++) {
  echo $i . "+";
  $total += $i;
}
echo $i . "=";
$total += $i;
echo $total;
?>

</body>
</html>

クライアントサイドスクリプトを含む例はこちらを参照.

[練習1]

例のスクリプト全体を"foo.php" (fooは「何々」という略で,適当に自分で決定すればよい)というファイル名にセーブし,これをブラウザで読込んでみよう.

もし,ファイルを"~/public_html/softwareDevel/foo.php"という名前にセーブしたならURLは

  http://www.yamanashi.ac.jp/~t09jj000/softwareDevel/foo.php
である.

実行結果は,ここを押したようになるはず.

<?php ?> で囲んだ部分がPHPのプログラムであり,出力はプログラムの実行結果となる.プログラムはクライアントには見えないことに注意しよう.

文法の解説:

ブラウザの機能として,サーバから送られてきた情報を見ることができる.メニュー「表示」→「ページのソース」をみてみよう.

PHPの文法の基本は,http://www.phpbook.jp/tutorial/index.htmlにそって解説することにする.

公式のマニュアルページはhttp://www.php.net/manual/ja/ である.

[練習2] コマンドラインでの利用法

Windowsで実習する場合は、省略 (2014年度)

PHPプログラムの実行は,ブラウザからサーバにリクエストしたときに行われるだけでなく,コマンドラインでも実行できる. 「端末」(Kconsole)を開いて,

   php (作成したphpファイル名)
を入力してみよう.結果がターミナル内に出力されるはずである.

このような利用方法も,結構便利なものである.

文法の基本

文法の特徴

Cと多くは似ている.違うのは,

など.

文法の原典は http://www.php.net/manual/ja/langref.php にあるが,わかりやすい説明としては,たとえば,PHPBookをあげる

演算子

算術演算子(四則演算)はCと同じである.

文字列の連結はドット"."である.

   $a = "aaa" . "bbb";

PHPは変数の型が柔軟に扱えるので,

  $a = 3 * 3.14;
  print "3と3.14をかけると" . $a . "になります.";
のような演算が可能である.

制御構造

プログラムの流れは,繰り返しと条件分岐で制御される.

繰り返し

繰り返しは,for, while, foreach, do〜whileである. foreachが新しく,下の配列変数のところで学習する.

条件分岐

条件分岐は,ifとswitchであり,Cと同じ書式である.

配列変数の定義

配列はいきなり定義できる.

例:

  $a[0] = "a"; $a[1] = "b"; $a[2] = "c";

array()という関数を用いて定義する例:

  $a = array("a","b","c");

多次元配列

多次元配列をいきなり定義する例:

  $ma = array(array(1,2,3), array(4,5,6));
上記の例は,配列を要素とする配列ととらえられる.PHPでは,それぞれの要素がことななる型をもっていてもよい.たとえば,
  $ma = array(array("a","b"), array(1,2,3))
というようなのもOK

[課題1]

文法の説明ページをみながら,プログラム言語IIのページの多次元配列の説明にあるプログラム例(List5-14のプログラム(改変))をPHPで書いてみなさい.

できれば、

  1. tableタグを使って表として表示する。
  2. 2行3列の行列に、後から1行追加する命令を入れて(値は自由に設定)、3行3列の演算を行った結果を表示する。
  3. 元の行列maやmbも表示する。

なども試みてみよう。

【締切: 10/22】 提出場所:https://moodle.yamanashi.ac.jp/2014/mod/assign/view.php?id=1650

連想配列

配列の各要素は「キー」で指定する.配列とは「キー」とそれに対応する「値」の組と思えばよい.

例:

  $name["豊木"] = "博泰"; $name["鈴木"] = "嘉彦"; $name["北村"] = "眞一";
例2:
  $name = array("豊木" => "博泰", "鈴木" => "嘉彦", "北村" => "眞一");

[課題2]

上記のような連想配列を定義し,それらを(わかりやすい形で)出力してみなさい.新たに自分の姓と名を$nameという配列の一要素に加え,出力してみなさい.上記のarray関数の引数に要素をひとつ追加するのではなく、次の命令として要素の追加を行う文を作成すること。

できたら,複数の方法を示してください.

あわせて,繰り返し制御文としてdo〜while()とforeachの書式について調べなさい。

【締切: 10/25】

一言