PHPの勉強 ①
今回、まずprogateでPHPの勉強を始めました。
わかったこと
・文字列の連結(変数の展開)
「” “」(ダブルクォーテーション)で文字列を囲んだ場合、中の変数を{ }で囲むとその部分が変数に入っている値で置き換えられる。
※「’ ‘」(シングルクォーテーション)で文字列を囲んだ場合は{ }で囲んだ中の変数は変数としてみなされず(ただの文字列としてみなされる)そのままの状態で表示される。
例 $name = ‘にゃんこ’;
echo “こんにちは、{$name}さん”;
→結果として、こんにちは、にゃんこさんが出力される。
echo ‘こんにちは、{$name}さん’;
→結果として、こんにちは、{$name}さんが出力される。
・if
条件に応じた処理の分岐をする。
条件が成り立つ(真)→{ }の中の処理が実行される。
条件が成り立たない(偽)→何も実行されない
$i = 20; →まず変数を定義
if($i > 10){ →if文を定義
echo ‘$iは10より大きい’;→if文が成り立つ場合実行される
}
$i = 20;
if($i > 30){ →ここで条件式が成り立たない
echo ‘$iは30より大きい; →実行されない
}
・比較演算子
右辺を基準にして<, >, <=, >=,==, !=などがある
真偽値→true, falesからなるデータの種類。
・else →if(条件式){ }else{ }のように使う「もし~ならば○○そうでなければ○○」というようにifの分岐を増やす。
・else if → if(条件式){ }elseif(条件式){ }else{ }のように使う。「もし~ならば○○、それとも~であれば○○、すべてに当てはまらない場合は○○」というように、ifとelseの間に用い、分岐をさらに増やす。
elseifは、分岐の数だけ並べられる。
・複数条件の組み合わせ
「&&」→かつ。左辺と右辺の両方が真の場合、全体も真
「||」→または。左辺と右辺のどちらか(または両方)が真の場合、全体も真
(基礎理論内の組合せと考え方は同じ)
「!」→条件の否定→結果が全く逆になる。
$i = 20;
if($x>10&&$x<30){
echo ‘$iは10よりも大きくかつ30より小さい’;
} →真なので結果を表示する。
if($i<10||$i>30){
echo ‘$iは10よりも小さいかまたは30よりも大きい’;
} →偽なので何もしない
if(!$i == 30){
echo ‘$xは30ではない’;
} →!が頭についているので、これは真になる→結果の表示
・倍数の表し方
xを目的の倍数で割ったときの余りが0になると考える。
$x % 3 == 0 →xを3で割った余りが0という式
・switch文
ifやelseifなどで表すそれぞれの分岐をcaseに当てはめる。なにも当てはまるものがない場合は、defaultを実行する。caseの間と間にbreak(終了命令)を入れる。
例 コインの表と裏 (表が0で裏が1)
switch($coin){
case0:
echo ‘表’;
break;
case1:
echo ‘裏’;
break;
default:
echo ‘エラー’;
}
※途中breakを入れ忘れてしまうと。上のcaseと同一と考えて実行してしまう。
・配列
変数を用いると一つの変数に対して一つの値しか入らない
配列は複数の値をまとめて保存する(考え方は基礎理論内の配列と同じ)
構文:$配列名 = array(‘値1’,’値2’…);のように使う
$name = array(‘mie’,’gifu’,’nagano’) →左から[0], [1],[2]の箱に入る
echo ‘$name[2]; → naganoを表示
$name[1] = ‘aichi’; →[1]の値をaichiに上書き
echo ‘$name[1]’; → aichiを表示
・連想配列
配列との違いは、番号ではなく「キー」と呼ばれる文字列や数字で配列を管理する。
$配列名 = array(‘キー名’ =>’値1’);
$user = array(
‘name’ => ‘りんご’,
‘age’ => ‘40’,
‘gender => female’
);
配列と配列の間には「 , 」(セミコロン)を使う。
値の取り出し方
↑の例を使って、ageを取り出す
echo $user[‘name’];
値の追加
$user[‘level’]=’teacher’;
for文→繰り返し処理を行う
for ($i = 1; $i <= 100; $i++){
echo $i;
①$i = 1→初期化(初期値として用いる)
②$i <= 100→条件式(満たすべき条件)
③$i++→繰り返す処理(満たされるまで続ける処理)
④echo $i→変数の更新(処理後に出力しまた②に戻る)
while文
条件が真の場合でのみ繰り返し処理を行う。
while($i = 1; $i <= 10){
echo $i;
$i++;
一度ループ条件の真偽を判定してから都度繰り返し処理を行う。
無限ループ
条件式を何周してもtrueのままでループが終了しないこと。
break文
ループの強制終了をする。ifと一緒に用いる。
例 for($i =1; $i <= 10; $i++){
if($i > 5){
break;
}
continue文
ループの中の現在の周のみをスキップしてループそのものは継続する。
for($i = 1;$i <= 10;$i++){
if($i % 3 ==0){
continue;
}
}
foreach文
配列または連想配列に対して先頭のデータから順に繰り返し処理を行う。
foreach($data as $value){
echo $value;
foreach($colors as $key => $value){
echo $key. ‘:’ . $value;
・関数
組み込み関数 → もとから組み込まれた関数。あるまとまった処理を行い、値を返す。
「strlen」→組み込み関数の1つ、文字列の文字数を返す。
「count」→配列の要素数を返す。
「rand」→1つ目の引数、2つ目の引数の間のランダムな整数を返す。
関数の自作
function関数名(){処理} → 関数名()で呼び出し
戻り値→値を返す。
return 値*値
フォームを作る
htmlのformタグを使う。
action→データを渡す。
method→送信方法 get(送信先urlの表示)とpost(urlの非表示)
inputtype→テキストボックスを作る
データの受け取り
$_POST[連想配列];
<?php $_POST[‘name’] ?>
forで複数のタグを作る。変数の展開は” ”で囲む。
for($i = 1; $i < 4;$i++){
echo “option value = ‘{$i}’>{$i}</option>
まとめ
phpの言語は言語自体はわかりやすい、ただ、例えば練習などでこの処理をしろという問題に対して、何を使えばいいのかが時々わからなくなるので、個々の処理ではなく流れで覚えることが大切。
とくにforやifなどの文をいろいろと組み合わせると処理の仕方が混乱するので頭の中で流れを描けるくらいにしっかり練習をするのが大事。
あとは、細かな打ち込みミス(for()の後ろに{がなかったりといった)をしそうなのでそれも注意。