不惑にしてまだ何者でもない者のブログ

Arduino関連、Raspberry Pi関連、プログラミング学習

paizaラーニング『PHP基礎編:長テーブルのうなぎ屋を攻略! (全12回) 』を受講してみた

2020-11-16 22:09:46 | paiza
PHP入門編をすべて完了したので、そのままPHP関連をやっていこう。
今回は、PHP基礎編(社長ボイス版)にある『PHP基礎編:長テーブルのうなぎ屋を攻略! (全12回) 』をやっていく。

社長ボイスってあるのが、男の人の声で、あとBGMとかがないし、なんだか普通に講義受けてる感じするな。
チャプター5から声の人が変わってるような。

この『長テーブルのうなぎ屋』問題は、多分以前C++でチャレンジして全テストを通過することができなかった気がする😅 
これ円卓っていうのが結構厄介なんだよな。

  • ロジックの概要
    • 1. 処理を組み立て、手順を記述する
      入力処理、本処理、出力処理
    • 2. 大きな粒度に分割する
      ①入力処理:値取得、テーブルの配列準備(配列のkey:席番号、value:空いているかどうか)
      ② グループごとに空席確認
      ③ 席が空いていたら座る処理
      ④ 出力処理:座った人の人数を出力
    • 3. 詳細を詰める
    • 4. 実装
  • var_dump($変数名):変数に関する情報をダンプするための関数
  • array_pad($変数名, size, value):配列変数にvalueをsize個代入する
    $seat = array_pad($seat, $seat_num, 0);//0が空席
取得した認定証



paizaラーニング『PHP入門編10: 例外処理を理解しよう (全8回) 』を受講してみた

2020-11-16 22:09:46 | paiza
やはりチャプターごとの整理をしなければ早いな。

ようやく最後のレッスンとなる例外処理。
C++を勉強したときも、例外処理ってちゃんと理解して使ってないんだよな。
ここでしっかり勉強しとこう。

以下、メモ
  • 例外処理に対応しているPHPのバージョンは7以降
  • よく目にするエラー
    • E_PARSE:コードが文法的に誤っているときに発生。一切の処理を行わない。
    • E_ERROR:処理を継続することが不可能になってしまった場合に発生。発生したところで処理を停止。
    • E_WARNING:処理を継続することは可能だが、想定外の問題が起こったときに発生。
    • E_NOTICE:処理を継続することは可能だが、想定内の問題が起こったときに発生。
  • 例外処理(Exception)の機能
    • try:あらかじめコードを指定してプログラム実行時に、処理の問題を検出
    • catch:問題を検出したとき、どのように対応するか記述しておく
    • throws:対応を記述していない場合、メソッドの呼び出し元に対応を任せる
  • 例外処理の書き方
    try {
     //例外が発生するかもしれない処理
    } catch (Exception $e) {
     //例外発生したときの処理
     echo $e->getMessage() . "\n";
    } finally {
     //例外ありなし関係なく処理
    }
  • 実行時エラータブへの出力
    fputs(STDERR, $e->getMessage() . "\n");
  • 意図的に例外を発生させる
    throw new Exception("意図的な例外");
  • 発生させる例外を変更する
    • RangeException:範囲に関する例外
    • LengthException:長さに関する例外
    • InvalidArgumentException:引数に関する例外
  • 呼び出し先の関数で意図的に投げた例外は、呼び出し元の例外処理でcatchできる。
それなりにメモ書いたののブラウザの戻るで消えてしまったので、もう一度メモし直したのでちょっと手間取ってしまった。😩 

だいたい理解できた。
結構分かりやすかったな。

取得した認定証

これでPHP入門編のすべてのレッスンを完了した。
次は何の講座を受けようか。

ガンダムメガネ+ダイソーのメガネストッパー=ジャストフィット👍

2020-11-16 15:48:48 | 日記
サングラスが取り外し可能なのが気に入り、ガンダムメガネを買ったものの、店の人があまりちゃんとフィッティングしてくれなかったので、ちょっと緩いのがずっと難点だった。


そんな折、ダイソーで見つけたメガネストッパーを付けてみたところ、大分ピッタリフィットするようになった😆


ダイソー恐るべし😁


paizaラーニング『PHP入門編9: さらにクラスを理解しよう (全8回) 』を受講してみた

2020-11-16 07:51:15 | paiza
講座内容のメモ
  • 継承もできる:クラスを引き継いで、新しいクラスを定義
  • 継承のやり方
    class 継承先 extends 継承元 {}
  • 親クラスと同じメソッドを子クラスで再定義すれば、オーバーライドができる
  • public function:クラス外からも呼び出し可能なメソッドの定義
  • private function:クラス内のみ呼び出し可能なメソッドの定義
  • 親クラスのメソッドの呼び出し
    parent::メソッド名(...);
  • クラス変数・クラスメソッド:オブジェクトを作らずに呼び出すことができる。
    • 変数名・メソッド名にstaticを付けて定義
    • 呼び出すときは、クラス名に続けてコロン2つ(::)を付ける
  • 組み込みクラス
    • DateTimeクラス
      $now = new DateTime();
      $now->setTimezone(new DateTimeZone('Asia/Tokyo'));
      echo $now->format('Y-m-d H:i:s')."\n";
      $now->modify('+100 days');
      • formatメソッドの引数
        l (小文字のL) : 曜日 / フルスペル
        d : 日 / 2桁の数字
        F : 月 / フルスペル
        Y : 年 / 4桁の数字

認定証を取得


結構、staticの使いみちの説明が分かりやすかったな。

paizaラーニング『PHP入門編8:クラスを理解しよう (全7回) 』を受講してみた

2020-11-16 07:25:38 | paiza
なんだかイチイチ、チャプターごとのメモを取っていくの面倒だから、とりあえず認定証のリンクだけ貼っておこう。



っていうか、paizaのマイページから自分の取得した認定証一覧みたいなのってみれないのかな?

クラスの作り方とか見ると、PHPってオブジェクト指向言語なんだなってのが分かる。
結局、オブジェクト指向ってC++に似ているのかな?

一応重要な部分をメモっとくか。
  • クラスを定義するとき
    class クラス名 {}
    • 慣習として、クラス名の先頭は大文字
  • クラスのメンバ関数(メソッド)
    public function 関数名() {}
  • クラスのコンストラクタ
    public function __construct(...) {}
    • ...には初期化したい値を引数として渡す
  • クラスのメンバ変数
    private $変数名
  • インスタンスの生成
    $変数名 = new クラス名()
  • メソッドの呼び出し(アロー演算子を使う)
    $変数名->メソッド名()
  • クラスのメソッド内でインスタンスのメンバ変数にアクセスするとき
    $this->変数名
    • 変数名には$は要らないっぽい。
  • クラスのstaticなメンバ変数
    public static $変数名 = 値;
  • クラスのメソッド内でクラスのstaticなメンバ変数にアクセスするとき
    self::$変数名