2013年3月12日火曜日

PHP講義メモ week2-2

かくかくしかじか、学生向けにPHPを教えている。シラバスはこんな具合

今回はシラバスの2.PHP言語基礎b.型の途中からオブジェクト型、リソース型、NULL型、コールバック型。それとc.変数d.定数

例によってまとめメモを以下に。

(の続き)
  • オブジェクト型
    • オブジェクト指向プログラミングに入ってからまた触れます
      • JavaなどでOOPが分かってる人は、「設計図たるクラスから実体を生成する new 演算子(もうすぐ演算子の項でも登場)によって生成されたクラスのインスタンスなるオブジェクトの型」だと思ってくれてとりあえずは問題無いです。
  • リソース型
    • PHP実行単位の外側にあるリソースとの入出力を表す特殊な型
      (例えばどんな? → リソース型の一覧
    • 少なくとも言語基礎の学習では当面必要になる事は無いので、そんな様な型があるらしいぽよ、くらいに頭の片隅に留めて置いてくれればOK。
  • NULL型
    • オブジェクトが無い事を表す為に定義された空っぽの状態を表す専用の型
    • NULL型の値はnullのみ
    • 数値にゼロがあると便利な事の発見…のオブジェクトの空っぽ状態版だと思えば理解しやすいかも。
  • コールバック型
    • 「関数」をオブジェクトとして扱う為の特殊な内部型と思っておいてくれればとりあえずはOK
      • 「関数」も言語機能の何か特別な機能…以前にプログラマーにとってはクラスインスタンスの様に変数に入れたりして使えるオブジェクトみたいなものなんだ、と思ってみれば理解しやすくなるかも。(これは1つの解釈方法のヒントです)
    • 受け渡し関数のシンボル名を表す「文字列」である点に要注意
    • 関連参考: call_user_func
  • $hoge … $を付けたシンボルがPHPでの「ふつう」の変数
    • 大文字と小文字の区別アリ、命名規則について詳しい仕様はマニュアルを参照
    • 型宣言は不要(代入するリテラルに応じて動的に型付けされる)
      • 参考キーワード: 動的型付け言語
    • 使いたくなったところで唐突にソースコード中に登場させてOK
    • PHPの「ふつう」の変数のスコープ要注意
      • 「ふつう」はいわゆる大域変数
      • 関数スコープの中では局所変数の扱いになる
        • その中で大域変数のシンボルにアクセスしたければ global キーワードを使ってシンボルを大域化する必要がある
        • スコープ終端でも破棄されない局所変数を作りたければ static キーワードを使える(Cのそれとほぼ同様)
      • 後述のOOPの講義の際に、クラスメンバー変数の定義方法とvarキーワードについて追加で講義します。
  • $$hoge可変変数
    • 変数の中身の文字列を変数の名前として使用できる変態機能
    • 基本的なプログラミングには必要ない。ソースコードがカオスになって保守性を損なわないか使う際にはよく考える事。
  • define('name', 'value')
    • 変数とは書き方がまったくベツモノなので忘れないように注意。
    • 使う時は name とだけシンボル名を書けば良い。
    • 参考コード例: http://ideone.com/s2Smh1
とな具合で言語基礎も次回は関数や演算子。OOP関連を除く基礎的な言語仕様周りを講義したら例によってFizzBuzzやフィボナッチを色々な書き方で実装してみる遊びを挟む予定です。

0 件のコメント:

コメントを投稿