"> ">

Presentation is loading. Please wait.

Presentation is loading. Please wait.

PHP 文法 担当 岡村耕二 月曜日 2限 平成21年度 情報科学III (理系コア科目・2年生)

Similar presentations


Presentation on theme: "PHP 文法 担当 岡村耕二 月曜日 2限 平成21年度 情報科学III (理系コア科目・2年生)"— Presentation transcript:

1 PHP 文法 担当 岡村耕二 月曜日 2限 平成21年度 情報科学III (理系コア科目・2年生)
2007/5/2 平成21年度 情報科学III (理系コア科目・2年生) PHP 文法 担当 岡村耕二 月曜日 2限 本資料の一部は、堀良彰准教授、天野浩文准教授等による 以前の講義資料をもとにしています。 情報科学III(4)

2 for ($i=1;$i<100;$i++){ printf("%d",$i); if($i!=99) printf(", "); }
演習問題の回答例 問題1) PHP を用いて、1, 2, 3, .... , 99 と、カンマで区切られた1から99までの数字をすべて表示するプログラムを作成せよ。 <?php for ($i=1;$i<100;$i++){ printf("%d",$i); if($i!=99) printf(", "); } printf("\n"); ?>

3 演習問題の回答例 <?php for ($i=1;$i<100;$i++){ if($i%6==0)
問題2) 上の問題1の出力について、2の倍数は赤で、3の倍数は青で、6の倍数は緑で表示するようにプログラムを改良せよ。 <?php for ($i=1;$i<100;$i++){ if($i%6==0) printf("<FONT COLOR=00FF00>"); else if($i%2 ==0) printf("<FONT COLOR=FF0000>"); else if($i%3==0) printf("<FONT COLOR=0000FF>"); printf("%d",$i); if($i%2==0 ||$i%3==0) printf("</FONT>"); if($i!=99) printf(", "); } printf("\n"); ?>

4 前回のおさらい(1) PHP: Hypertext Preprocessor
HTMLで書かれた普通のwebページの中に,PHPプログラムを埋め込むことができる. PHPで書かれた部分を <?php  と  ?> で囲む. webサーバ上に置くファイルの拡張子 HTMLのみのファイル: .htm または .html PHPを含むファイル: .php

5 前回のおさらい(2) (サーバサイドでの処理となっている) ブラウザ ①ページのリクエスト webサーバ ②ページの取り出し
PHP処理用モジュール ②ページの取り出し ③PHP部分の処理 (結果はHTMLに埋め込み) HTML PHP HTML ④HTMLのみとなったページがブラウザに返信される (サーバサイドでの処理となっている)

6 前回のおさらい(3) PHPの文法(基礎編) 関数の呼び出し 文と文の区切り PHPからの「脱出」 コメント 変数とデータ型 演算子
制御構文 if,else,elseif,while,for 文など

7 今日やること PHPの文法(基礎編)-つづき 配列 関数のいろいろ データを入力して計算する 練習問題 演習問題(宿題)

8 PHPの文法(基礎編) (つづき)

9 配列(1) 前回扱った変数はすべて,1つの変数が1つの値しか持たなかった. スカラー型 配列(array)
複数の値をリストとしてまとめて格納する. ひとつひとつの値を要素(element)と呼ぶ. (PHPでは)要素の個数を後から勝手に増やすことができる. Cでは,格納できる要素の最大個数をあらかじめ宣言しなくてはならない. (PHPでは)配列の要素を,番号(添え字)の代わりに名前(文字列)で区別することもできる. 名前で要素を区別するような配列を連想配列と呼ぶ. Cにはこのような配列はない. (PHPでは)異なる型の要素が混在する配列も作れる. Cでは構造体(struct)にするしかない.

10 配列(2) 配列を作る・修正する方法 array() 関数を使う 要素を最初に全部一括登録したいときに便利
角括弧([ ])構文で作成・修正する 要素をひとつずつ登録・変更したいときに便利

11 "apple" "banana" "みかん" 配列(3) array() 関数による配列の作成・代入
array( key => value , ... ) key は、文字列または非負の整数.文字列の大文字小文字は区別される. key の順序は任意.value にも制約はない. 例1 $fruit = array( 0 => "apple", 1 => "banana", 2 => "みかん"); $fruit 1 2 "apple" "banana" "みかん" $fruit[0]

12 配列(4) 角括弧([ ])構文による作成・修正 この方法では,添え字 0,1,2,…という順序で欠番無しに詰められる.
添え字ゼロから順に,自動的に詰めていく $fruit[] = "apple"; $fruit[] = "banana"; $fruit[] = "みかん"; array()関数の実行結果(配列)を配列変数に代入する場合と異なり,角括弧が必要であることに注意! 添え字(または名前)を陽に指定して この方法では,任意の順序で要素を格納することができる.また,欠番があってもよい. $fruit[1] = "banana"; $fruit[0] = "apple"; $fruit[2] = "みかん";

13 配列(5) 連想配列の例 連想配列では,任意の順序で要素を格納することができる.
$profile = array( "sex" => "男", "age" => 20, "country" => "Japan" ); 連想配列では,任意の順序で要素を格納することができる. ただし,番号の場合と異なり,文字列のキーは省略不可. $profile["sex"] = "男"; $profile["age"] = 20; $profile["country"] = "Japan";

14 配列(6) 番号によるキーと名前によるキーが混在する配列も可能であるが,よほど必要でない限り,あまり使わないほうが無難であろう.

15 配列(7) 多次元配列 キーを複数指定することで要素を特定するような配列も作れる. array() 関数の呼び出しが「入れ子」になっている.
$two_dimensional_array = array( key1 => array( ... ), key2 => array( ... ), ); 配列の要素に他の配列を入れている. $one_dimensional_array1 = array ( ... ); $one_dimensional_array2 = array ( ... ); ... $two_dimensional_array = array( key1 => $one_dimensional_array1 ), key2 => $one_dimensional_array2 ), );

16 関数 戻り値を受け取る変数 = 関数名( 引数 ); ( )で囲まれたデータ(引数)を受け取り,何かの処理をして,結果を返す.
( )で囲まれたデータ(引数)を受け取り,何かの処理をして,結果を返す. 「引数」は「ひきすう」と読む. ほとんどの場合,実行結果は,変数に直接代入できる. 実行結果として返される値は,「戻り値」と呼ばれる. 戻り値がのちのち必要になる場合は,いったん変数で受け取っておいて,その変数を利用するとよい. 戻り値を受け取る変数 = 関数名( 引数 );

17 関数のいろいろ ここまでに出てきた関数 print():実は,論理型の値(TRUE/FALSE)を返す. array():配列を返す.
その他にも,たくさんの定義済み関数がある.たとえば: PHP処理系の情報を表示する関数 文字列を操作する関数 日付・時刻を得る関数 数学関数 詳細は,PHPに関する書籍や,下記のURLを参照するとよい

18 正当なHTML文書に必要なすべてのタグを作ってくれるので,HTMLデータの中に埋め込まなくてもよい.
PHP処理系の情報を表示する関数 (論理型変数) = phpinfo( オプション ); オプション(省略可)の例 INFO_ALL :すべての情報(デフォルト) INFO_GENERAL :PHP 処理系をサーバにインストールしたときの状況 phpinfo() 関数が 正当なHTML文書に必要なすべてのタグを作ってくれるので,HTMLデータの中に埋め込まなくてもよい. 世界でもっとも単純な PHP プログラム? <?php phpinfo(); ?>

19 文字列を操作する関数の例 (整数型変数) = strlen( 文字列 ); 文字列の長さを返す.
(文字列変数) = strchop( 文字列 ); 文字列の末尾にある空白文字(スペース,タブ,改行文字その他)を取り除く. ASCIIコードのような1バイト文字コードの場合と,EUC_JP・UTF-8などのような多バイト長コードの場合とで,実行結果が異なる(あるいは多バイトでは正しく実行できない)関数もある. そのような関数については,レファレンスマニュアル等で,同じ関数名の頭に「mb_」のついたものが用意されているかどうか,探して機能を比較してみるとよい. なお,mb は「multi-byte」の略である.

20 日付・時刻を得る関数の例 (文字列) = date( 書式文字列, タイムスタンプ );
書式文字列の例 (実に詳細な指定法が可能だが,ここでは例を2つだけ) "r" …「Wed, 2 May :01: 」のような形式 "F j, Y, g:i a" …「March 10, 2001, 5:16 pm 」のような形式 タイムスタンプ(省略したときは現在の日時) UNIXでは,通常,グリニッジ標準時の 1970 年 1 月 1 日 00:00:00 からの通算秒数で表現される.普通はあまり考える必要なし. <html> <body> 現在の時刻は:<br> <?php print( date("r") ); ?> </body>  </html>

21 数学関数の例 (整数型または浮動小数点型変数) = abs( 整数または実数 ); 絶対値を求める.
(浮動小数点型変数) = sqrt( 浮動小数点型データ ); 平方根を求める.

22 値を入力して、足し算を行う main.htm
<form method="POST" ACTION=“plus.php"><p> <input type="text" name="a" size="4"> <input type="text" name="b" size="4"> <input type="submit" value="Plus"> <input type="reset" value="clear"> </form> plus.php <?php $a=$_POST["a"]; $b=$_POST["b"]; printf("%d + %d = %d",$a,$b,$a+$b); ?>

23 入力フィールド テキスト入力フィールド (<input type=text)
2007/5/2 入力フィールド テキスト入力フィールド (<input type=text) パスワード入力フィールド (<input type=password) チェックボックス (<input type=checkbox) ラジオボタン (<input type=radio) 提出ボタン (<input type=submit) リセットボタン (<input type=reset) イメージ上の座標入力 (<input type=image) ファイル名入力フィールド (<input type=file) 隠しフィールド (<input type=hidden) 選択メニュー (<select ... ) テキストエリア (<textarea ... ) 情報科学III(4) 23

24 2007/5/2 入力フィールド(例) 情報科学III(4) 24

25 練習問題 100個の乱数を発生させ、並び換えるプログラムを作成しなさい。 発生させる乱数の 最小値 最大値 個数
を、入力し、乱数を発生させ、それを並び換えるプログラムを作成しなさい。

26 演習問題 a, b, c を入力して、2次方程式を解くプログラムを作成せよ。 aX^2 + bX = C
入力画面および入力例 Hakozaki 12 Ropponmatsu 9 Maidashi 22 Ito 4 Ohashi 29

27 うまく表示できないときのチェックリスト HTMLの開始タグ・終了タグはきちんと対応が取れているか?
例:<head> ~ </head> PHPの開始タグ・終了タグはきちんと対応が取れているか? <?php ~ ?> ( ~ ),{ ~ }," ~ ",などの対応は取れているか? あるべきところにセミコロンがあるか? 連想配列に値をセットするとき/値を読むとき,キーの名前を打ち間違えていないか? 例: $message["Wed"] と $message["Wen"];


Download ppt "PHP 文法 担当 岡村耕二 月曜日 2限 平成21年度 情報科学III (理系コア科目・2年生)"

Similar presentations


Ads by Google