【TechStudyGroup #3】ハッカソンで調べたことの備忘録(PHP)
5月30日に開催された、
オンラインでハッカソン! - TechStudyGroup #3
に参加してきました。
備忘録として、そこで調べたことをまとめたいと思います。
感想やまとめについてはリーダーが記事を上げてから私の方でも書きたいと思います。
↓ リーダーのブログです。
kn46itblog.com頼もしくて自慢の後輩です。
ちなみに初ハッカソンでしたw
PHPを触るのが久しぶりで忘れ方が酷かったです...。
間違いがありましたらコメントお願いします
APIについてはバックエンド担当が作ってくれたので感謝感激です。
文字列の表示
文字列の囲み方
<?php $str = 'Hello world.'; echo $str; // ①クォーテーションなし echo "$str"; // ②ダブルクォーテーション echo '$str'; // ③シングルクォーテーション ?>
  実行結果  
① Hello world. ② Hello world. ③ $str
変数のみであれば①のようにクォーテーションなしでok
変数も文字列として表示するのであれば②のようにダブルクォーテーションで囲む。
③は文字列として$strを出力した。
文字列の連結
<?php $a = 'Hello '; $b = 'world'; echo "test: {$a}{$b}"; // ① echo 'test: '.$a . $b; // ② echo 'test: ',$a , $b; // ③ ?>
  実行結果  
① test: Hello world ② test: Hello world ③ test: Hello world
①は文字列testと変数$aと$bを文字列のまとまりとして表示
②は文字列testと変数$a, $bを連結(.)して表示
③は「,」で区切られており、testと$a, $bの3つをそれぞれechoして表示
繰り返し
<?php $prefectures = array("Fukuoka","Kumamoto","Kagoshima"); foreach($prefectures as $prefecture){ // ① echo $prefecture; echo "<br>"; } for($i = 0 ; $i < count($prefectures); $i++){ // ② echo $prefectures[$i]; echo "<br>"; } ?>
  実行結果  
Fukuoka Kumamoto Kagoshima Fukuoka Kumamoto Kagoshima
②は普通のfor文。①はPythonでいう for prefectures in prefecture: みたいな感じかな。
ポインタの扱い
<?php // さっきとは別の配列の作り方 $arr = array( 'north' => 'Fukuoka', 'middle' => 'Kumamoto', 'south' => 'Kagoshima', ); next($arr); // 内部ポインタを動かす $a = $arr; // 動かした結果を別の配列へ echo current($a) . ; echo current($arr) . ; ?>
  実行結果  
Kumamoto Kumamoto
特にポインタの移動では変化ないみたいですね。
データを次の画面へ引き継ぐ
セッション変数
色々やり方はあると思いますが、今回はセッション変数を使いました。
page1.phpを開いたあとpage2.phpに遷移して、page1.phpで設定したセッション変数を表示します。
  page1.php  
<?php // セッションデータを初期化 // セッションIDの新規発行、又は、既存のセッションを読み込む // $_SESSIONを読み込む session_start(); // 有効期限30分 session_cache_expire(10); $_SESSION["id"] = 'hoge'; // idの設定 $_SESSION["name"] = 'Kagoshima'; // nemeの設定 header("Location:./page2.php"); // page2.phpへ遷移 ?>
  page2.php  
<?php //既存のセッションの読み込み session_start(); echo 'id: '.$_SESSION["id"].'<br>'; //idの表示 echo 'name: '.$_SESSION["name"].'<br>'; // nameの表示 echo 'session_id: '.$_COOKIE["PHPSESSID"].'<br>'; //セッションIDの表示 // すべてのセッション変数の削除 $_SESSION = array(); // クッキーの削除 if (isset($_COOKIE["PHPSESSID"])) { setcookie("PHPSESSID", '', time() - 1800, '/'); } // セッションに登録されたデータの削除 session_destroy(); ?>
  実行結果  
id: hoge name: Kagoshima session_id: 4td12a5e18egf8jqc60qkdjqap
ページ遷移しても変数が保持されていることを確認できました。
まとめ
セッション変数についてはセキュリティの面で様々な検討ができると思うので調べてみたいと思いました。
ハッカソン中はPHPマニュアルを詳しく読んでいる暇もなかったので、時間がある時にでも眺めてみたいです。
以上、備忘録ですがありがとうございました。
ではまた!