Progateって
Progateはプログラミングの学習ができるサービスで無料で学ぶことができます。一部は有料になってくるのですが980円で1か月学ぶことができるようです。筆者は最初RubyOnRailsを学んでいたのですがコース3のあたりで有料になってしまいました。筆者の見解としてはへたな本を買うよりもProgateにお金を払ったほうがいい気がしてきましたので、近々有料会員になろうと思います。
本はいつでも読めて便利ですがプログラミングの本は一冊3000円もするけど、プログラムの基本しか書かかれてなかったりして、本を読んだからといって何かが作れるようになるわけでもないという感じがしています。980円で一カ月だったら結構いろいろできそうです。
まえがきはこれくらいにしてPHPを学んでいきたいと思います。
PHPとは
PHPはスクリプト言語みたいですが、結局のところWebサービスを作るための言語みたいですね。PHPを使用するとお問合せフォームなんかを作成できるようになるみたいです。
PHPの書き方
<?php ?>
この中にスクリプトがかけてhtmlに埋め込むことが可能
PHPの変数
<?php $name = "tanaka"; ?>
変数には$をつける
文字列の連結
PHPの文字列連結は . ドット記号を用いる
<?php $firstname = "tanaka"; $lastname = "kunie"; $firstname.$lastname; //文字列の連結と代入を同時に行う $firstname .= "さんこんにちは"; ?>
変数展開
変数展開は{}なみかっこを使って表現できるようです
<?php $name = "suzuki"; echo "{$name}さんこんにちは"; ?>
条件分岐
<?php $x = 9000; if($x > 8000){ echo "$xは8000よりも大きい"; }else{ echo "$xは8000よりも小さい"; } ?>
elseif
<?php $x = 1071; if($x % 3 == 0 && $x % 7 == 0){ echo "xは3の倍数かつ7の倍数です。"; }elseif($x % 3 == 0 && !($x % 7 == 0)){ echo "xは3の倍数ですが7の倍数ではありません。"; }elseif($x % 7 == 0 && !($x % 3 == 0)){ echo "xは7の倍数ですが3の倍数ではありません。"; }else{ echo "xは7の倍数でも3の倍数でもありません。"; } ?>
switch case文
<?php // この下で$numに好きな数字を代入してください $num = 30; $remainder = $num % 3; switch($remainder){ case 0: echo "大吉です"; break; case 1: echo "中吉です"; break; case 2: echo "小吉です"; break; default: echo "凶です"; break; } ?>
PHPの配列
phpの配列は波かっこでもなく中かっこでもなく array() ふつうのかっこを使うようです。
<?php // この下に配列を作ってください $colors = array("赤", "青", "黄"); echo $colors[0]; $colors[3] = "白"; echo $colors[3]; ?>
連想配列
連想配列は キー => 値という書き方、カンマ区切りで宣言。閉じかっこの最後にセミコロン
<?php $scores = array( "数学" => 70, "英語" => 90, "国語" => 80, ); $scores["国語"] += 5; echo $scores["国語"]; ?>
PHPの繰り返し
for文, while文, foreach文
for文
<?php // この下にfor文を書いてください for($i = 51; $i < 101; $i++){ echo $i; echo '<br>'; } ?>
while文
<?php // 変数$iを定義してください $i = 2; while($i < 101){ if($i % 2 == 0){ echo $i+"<br>"; } $i++; } ?>
break
<?php // この下にfor文を書いてください for($i = 1; $i < 1000; $i++){ if($i >= 501){ break; } echo $i+"<br>"; } ?>
continue
<?php // この下にfor文を書いてください for($i = 1; $i < 1001; $i++){ if($i % 3 == 0){ continue; } echo $i+"<br>"; } ?>
foreach
phpのforeach は in じゃなくて as を使う 左から右に値が流れていく
foreach($scores as $key => $value){} 連想配列のforeach
<?php // この下にforeach文を書いてください foreach($scores as $key => $value){ switch($key){ case "数学": echo "数学は70点です"; break; case "英語": echo "英語は90点です"; break; case "国語": echo "国語は80点です"; break; } } ?>
phpの関数
phpの関数定義は void でも def でもなく function
<?php // 関数helloを定義してください function hello(){echo "Hello world!";} // 関数helloを呼び出してください hello(); echo '<br>'; // 関数printRectangleAreaを定義してください function printRectangleArea($height, $width){ echo $height * $width; } // 引数を(5, 10)としてprintRectangleAreaを呼び出してください printRectangleArea(5, 10); ?>
戻り値ありの関数
returnを使う
<?php // 関数getCircleAreaを定義してください function getCircleArea($radius){ return $radius * $radius * 3; } // 関数getCircleAreaを呼び出して、戻り値を変数$circleAreaに代入してください $circleArea = getCircleArea(5); // $circleAreaをechoしてください echo $circleArea; ?>
form
phpの文法ではないがお問合せフォームを作る場合に必要
methodの値
- get → getの場合は送信される値がURLに表示される
- post → postの場合は送信される値がURLに表示されない
<form action="sent.php" method="post"> </form>
inputタグとテキストエリア
name属性は後でデータをうけとるときの名前
<form method="post" action="sent.php"> <div class="form-item">名前</div> <input type="text" name="name"></input> <div class="form-item">内容</div> <textarea name="body"></textarea> <input type="submit" value="送信"></input> </form>
PHPでフォームの値を受け取る
<div class="form-item">■ 名前</div> <!-- nameを受け取りechoしましょう --> <?php echo $_POST["name"]; ?> <div class="form-item">■ 内容</div> <!-- bodyを受け取りechoしましょう --> <?php echo $_POST["body"]; ?> </div> </div>
セレクトタグ
phpの文法ではないが、セレクトタグでえらばれた値を.phpで受け取ることが可能。submitボタンをおしたらselectタグで指定したname属性の値を.phpで受け取る。
<select name="age"> <option value="未選択">選択してください</option> <option value="20代">20代</option> <option value="30代">30代</option> </select>
Optionタグを連続で生成する
<select name="age"> <?php for($i = 1: $i < 5; $i++){ echo "<option value='{$i}'>{$i}</option>" } ?> </select>
Progate PHP コース1 まとめ
formタグ内の様々な部品の属性nameは、 formで送信(submit)することformタグのaction属性で指定した.phpで受け取れる。これが結構重要な気がした。その他はとくに。
コメント