« PHP = SSI + Shell | トップページ | 初心者向けプログラミング言語 »

2009年12月 2日 (水)

PHP をやって過去の謎が解ける

以下のようなコードの「出身地」は、 PHP ではなかろうか。

if (x == true ) { // do something. }

以前、 Java の Web アプリで、

  • 変数がすべて文字列型
  • SQL を毎回メソッド呼び出し時に String で構築
  • ていうか、なんで PreparedStatement 使わない?

というのを見たことがあるのですけど、これも「 PHP 風」ですね。

PHP には MySQL 関数群というのがあって、これが、

  • パラメータ使えない
  • クエリ結果を全部文字列の配列で返す

という、かなり変わった特徴があるみたいです。

ただし、PHP 5 からは、 MySQLi ( MySQL Improved Extension ) というのが入ってます。これは、パラメータが使えて、一見 DBI 風。が、クエリ結果は文字列の配列で返すみたい。なんで?

<?php
$a = array(true, false, NULL, 0, 1, '', '0', '1',
  0.0, 1.0, array(), array(1));
var_dump($a);
foreach ($a as $k => $v) {
  echo "$k: ";
  if ($v) { echo "true\n"; }
  if (!$v) { echo "false\n"; }
}

カオスな実行結果:

array(12) {
  [0]=>
  bool(true)
  [1]=>
  bool(false)
  [2]=>
  NULL
  [3]=>
  int(0)
  [4]=>
  int(1)
  [5]=>
  string(0) ""
  [6]=>
  string(1) "0"
  [7]=>
  string(1) "1"
  [8]=>
  float(0)
  [9]=>
  float(1)
  [10]=>
  array(0) {
  }
  [11]=>
  array(1) {
    [0]=>
    int(1)
  }
}
0: true
1: false
2: false
3: false
4: true
5: false
6: false
7: true
8: false
9: true
10: false
11: true

|

« PHP = SSI + Shell | トップページ | 初心者向けプログラミング言語 »

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/80472/32451562

この記事へのトラックバック一覧です: PHP をやって過去の謎が解ける:

« PHP = SSI + Shell | トップページ | 初心者向けプログラミング言語 »