ログ日記

作業ログと日記とメモ

楽しい言語は・・

配列の謎………ええ? - がるの健忘録
途中までコメント書いたけど長くなったのでこっちに書き直し。


配列の扱いは時々ハマる。

// この配列は以下の配列と同じです ...
array(5 => 43, 32, 56, "b" => 12);

// この配列は上の配列と同じです
array(5 => 43, 6 => 32, 7 => 56, "b" => 12);

こういうことは基本やらない。

Array
(
    [a] => 43
    [0] => 32
    [1] => 56
    [X] => 12
)

こんな配列が欲しくなったら

Array("a" => 43,
      "X" => 12,
      "other" => array(32,56)
)

こうする。

文字列への文字単位のアクセスと修正

に関しては私も痛い目にあったので、配列を扱う前はarray()での初期化やis_array()でチェックするようにしてる。
逆に

if (is_string($a)){
  if ($a[0] === '/'){

などとすれば安全になる。
しかし動的型付けの言語でいちいち型チェックをするなら静的型付けの言語に切り替えた方がいいんじゃないか・・とか思い始めたりもする。
C言語みたいなんじゃなくてHaskellみたいに推論してくれるといいな。

// Numericは 1 や "1" など
String function getItem(Numeric $i){
    return $this->items[$i];
}

こんな感じで書ける言語って無いのかな。




PHPに関する記事をざっと見てたら
テンプレートエンジン「conv」クラスへの言及その1 - がるの健忘録
ここが面白かった。


どっちの考えも分かる。
だからこそNishimura's Siteこんなことをやったわけだが・・。


で、なんか記憶の糸に引っかかると思って考えてみたら・・mixiで見たのか。
インターフェースの話もついでにmixiで聞いてみたかったけど、自分がまだちゃんと理解できてないのでここでつぶやいておいた。