+ All Categories
Home > Technology > 03 var array_flow_func

03 var array_flow_func

Date post: 26-Jun-2015
Category:
Upload: -
View: 534 times
Download: 0 times
Share this document with a friend
Description:
PHPの基本構文について学びます。
Popular Tags:
22
PHP講座(3) 変数・配列・制御構文・関数 この教材ではすべてのプログラムに共通する 基本的な概念を学びます。 文法みたいなものだと思ってください。
Transcript
Page 1: 03 var array_flow_func

PHP講座(3)!変数・配列・制御構文・関数

この教材ではすべてのプログラムに共通する 基本的な概念を学びます。 文法みたいなものだと思ってください。

Page 2: 03 var array_flow_func

PHPのデータ型

10.4.18 (C) 株式会社破滅派

2

1.文字列  ‘’(シングル・クオート)か””(ダブル・クオート)で囲む。日本語でおk。  

2.数値  半角英数でそのまま入力。絶対に全角を使わない!  

3.配列  色々な値を覚えておく出席簿みたいなもの。(後述します)  

4.真偽値  ほんと(true)か嘘(false)か  

5.オブジェクト  クラスの実体(この講座の中盤で説明します)  

6.リソース  データベースに接続する時などに使う  

7.NULL  ヌルと読む。「無」を意味する値。こんなの→  

基本

難しいからあとで

Page 3: 03 var array_flow_func

PHPのデータを扱う方法

10.4.18 (C) 株式会社破滅派

3

PHPでデータを扱うとき、  同じものを何度も処理する場合があります。

こういう時、便宜的に名前を付けておくと便利です。

変数をつかいます。

Page 4: 03 var array_flow_func

変数入門

10.4.18 (C) 株式会社破滅派

4

$hoge  =  “fuga”; 【変数を宣言する構文】

=はイコールじゃなくて「代入」

$マークで始まるのが変数。  もちろん半角英数。  

変数によって名付けたい値。  型はなんでもOK。  

変数というのは値につけられる名前のことです。

Page 5: 03 var array_flow_func

複数のデータを扱う

10.4.18 (C) 株式会社破滅派

5

複数の似たようなデータを扱うことがあります。

配列をつかいます。

Page 6: 03 var array_flow_func

配列

10.4.18 (C) 株式会社破滅派

6

$children  =  array(“綾波レイ”  ,  ”式波・アスカ・ラングレー”  ,  ”碇シンジ”);

【配列を宣言する構文】

変数が名前なら、配列は出席番号のついた名簿のような役割を果たします。  左から順に番号が振られます。  

echo  $children[0];    //綾波レイ  echo  $children[1];    //式波・アスカ・ラングレー  echo  $children[2];    //碇シンジ  echo  $children[3];  //undefined(定義されていません)

  配列の番号は0からスタートする。    配列の子要素には[]でアクセスする。

「カンマ」で区切ります。

Page 7: 03 var array_flow_func

連想配列

10.4.18 (C) 株式会社破滅派

7

【連想配列を宣言する構文】

$evangelion  =  array(  “綾波レイ”  =>  “零号機”,            ”式波・アスカ・ラングレー”  =>  “弐号機”,            ”碇シンジ”  =>  “初号機”);

配列は番号による名簿のような役割でしたが、連想配列にはそれぞれの子要素に名前があります。  ちょうど、生徒想いの先生が生徒一人一人の名前を覚えているようなものです。  

「=>」で名前と値をペアにし、配列同様、カンマで区切ります。

echo  $evangelion[“碇シンジ”];  //初号機

  番号はなく、それぞれの子要素にキーがある。    配列の子要素には[“キー”]でアクセスする。

Page 8: 03 var array_flow_func

定数について

10.4.18 (C) 株式会社破滅派

8

【定数を宣言する構文】

define(“HOGE”,“FUGA”); echo  HOGE;  //FUGA

定数は変数と違い、一度つけたら変えられません。  $から始まったりもしません。  DB接続用パスワードなどに使われます。  慣例としてすべて大文字で書きます。

Page 9: 03 var array_flow_func

定義済み変数と定義済み定数

10.4.18 (C) 株式会社破滅派

9

PHPはWebに特化したプログラミング言語なので、色々なものがあらかじめ定義されています。  これは車輪の再発明(同じことの繰り返し)を防ぐためです。  

  スーパーグローバル変数  $_ではじまるものです。  $_POST,  $_GET,  $_SERVER,  $_FILE…(どれも配列)  $GLOBALSですべて参照できます。  

  定義済みの定数  __FILE__,  __LINE___(前後にアンダースコア2連続)  PHP_VERSION,  PHP_OS  M_PI,  M_SQRT2  

$_GETも$_POSTも配列だったんだ!

Page 10: 03 var array_flow_func

条件分岐とは?

10.4.18 (C) 株式会社破滅派

10

【条件分岐を何に使うのか?】

たとえば、ログインフォームを考えて見ます。  

ログイン名  パスワード  

もし合ってたらログイン  間違ってたら エラー   

ユーザーが入力するもの  

Page 11: 03 var array_flow_func

条件分岐の構文

10.4.18 (C) 株式会社破滅派

11

if(条件){    //合っている時の処理  }else{    //合っていない時の処理  }  

{~}を「ブロック」と呼びます

Page 12: 03 var array_flow_func

条件分岐の例「合計で10になる数値を入れなさい」

10.4.18 (C) 株式会社破滅派

12

//ユーザの入力した情報を取得  

$number1  =  $_POST[“number1”];  $number2  =  $_POST[“number2”];    

//二つの合計が10だったら  if($number1  +  $number  2  ==  10){    echo  “合ってる”;  

}else{    echo  “間違ってる”;  

}  

でも、これだとYes/Noしかできない…

Page 13: 03 var array_flow_func

複雑な条件分岐

10.4.18 (C) 株式会社破滅派

13

//ユーザの入力した情報を取得  

$number1  =  $_POST[“number1”];  $number2  =  $_POST[“number2”];    

//二つの合計が1000より大きかったら  

if($number1  +  $number  2  >  1000){    echo  “大きい”;  

//二つの合計が100より小さかったら  

}elseif($number1  +  $number  <  100){    echo  “小さい”;  

//それ以外  

}else{    echo  “普通”;  

}  

これでいくらでも条件をつけることができる!  

Page 14: 03 var array_flow_func

反復処理とは?

10.4.18 (C) 株式会社破滅派

14

【コンピューターが得意なものは?】 どんな処理でも「繰り返し」というものはあります。  まったく同じではなくても、「似たような処理」を繰り返すことはよくあります。  

それを一々プログラミングする必要があるでしょうか?(暇ならいいですけど…)  そう、コンピューターが一番得意なのは、「機械的な反復作業」です。言い換えれば、「反復処理はできる限りコンピューターにやらせるべき」なんです。  

毎日同じことなんてやってらんねーよ….

Page 15: 03 var array_flow_func

反復処理に向いているもの

10.4.18 (C) 株式会社破滅派

15

【反復処理に向いたデータ型=配列】 配列は複数の要素からなる出席簿のようなものだと説明しました。  

配列のインデックスは0から始まる  ↓  1~10 = 0~9  ↓  一番左を0と考えると、並ぶべき位置は(自分の番号×距離)  

出席番号1から10の奴、左から右に並べ!

Page 16: 03 var array_flow_func

反復の構文

10.4.18 (C) 株式会社破滅派

16

for(初期条件;終了条件;毎回行われる処理){  

 //毎回行われる処理  

}    {~}を「ブロック」と呼びます

Page 17: 03 var array_flow_func

反復の例:for文

10.4.18 (C) 株式会社破滅派

17

$member  =  array(“その1”,  “その2”,  “その3”,  “その4”,  “その5”,  “その6”,  “その7”,  “その8”,  “その9”,  “その10”);  

for($i  =  0;    $i  <  10;    $i++){  

 $position  =  $i  *  10;      echo  “{$member[$i]}は{$position}にいます。”;  

}    /*  その1は0にいます    その6は50にいます  その2は10にいます    その7は60にいます  その3は20にいます    その8は70にいます  その4は30にいます    その9は80にいます  その5は40にいます    その10は90にいます  */  

※何回繰り返せばいいか、あらかじめわかっていない場合は?  

初期値は0

$iが10より小さい限りは実行

繰り返しのたびに$iに1を加算

Page 18: 03 var array_flow_func

反復の例:foreach文

10.4.18 (C) 株式会社破滅派

18

$member  =  array(“JR”  =>  130,  “小田急”  =>  “120”,  “井の頭”  =>  110,  “営団”  =>  160,  “都営バス”  =>  200);  

foreach($member  as  $k  =>  $v){  

 echo  “{$k}の初乗りは{$v}円です。”;  }    

/*  JRの初乗りは130円です。  小田急の初乗りは120円です。  井の頭の初乗りは110円です。  営団の初乗りは160円です。  都営バスの初乗りは200円です。  */  

【for文と比べて…】  連想配列を扱うのに便利        いちいち要素の数を調べなくていい  

なんかかっこいい    

要素のキー

要素の値(値だけでもいい)

Page 19: 03 var array_flow_func

反復を途中でやめる場合

10.4.18 (C) 株式会社破滅派

19

$girls;    /*  この配列は30個の要素を持っています。値は「付き合ってもいい」または「付き合いたくない」です。  あなたはすさまじいモテ男なので、全員に告白を試み、何人目にふられるかを試します。  */  

$number_of_confession  =  0;  //告白回数  for($i  =  0;    $i  <  30;    $i++){  

 $number_of_confession  =  $i;      if($girls[$i]  !=  “付き合ってもいい”  ){      break;    }  

}  echo  $number_of_confession;  

※告白回数を何人まで伸ばせるかは、$girls次第!  

breakで強制的にループを終了

Page 20: 03 var array_flow_func

組み込み関数

10.4.18 (C) 株式会社破滅派

20

人間の考えることというのは、大体同じです。  これまで、数多くの人が同じようなことを考えてきました。

だいたいの関数はすでにあります。

パスワードの文字数とか数えるのめんどくせーな

そういうのあるよ

Page 21: 03 var array_flow_func

関数は自分でも作れます

10.4.18 (C) 株式会社破滅派

21

function  hoge($foo,  $bar){    //ここでなんか処理を行う    return  $fuga;  

}  

$var1  =  hoge(1,  2);  $var2  =  hoge(10,20);

引数。なくてもいいし、なんこあってもいい。 関数名 関数宣言

戻り値(なくてもいい)

Page 22: 03 var array_flow_func

ちなみに…

10.4.18 (C) 株式会社破滅派

22

PHPには4000個近い組み込み関数があります。  そのほとんどは元々誰かが作ったものだったり、  他の言語から移植したものだったりします。

プログラムの極意は、  「いかにして関数を作るか」  にあるといっても過言ではありません。


Recommended