Studio 243K - Diary 暇人の暇人による暇人のための暇つぶし
さんざん語りつくされたネタだとは思いますが,配列の生成コストについて,自分なりに調べてみました. 調査に用いた環境は以下の通りです.
CPU | Intel(R) Core(TM) i7 CPU 920 @ 2.67 GHz |
---|---|
メモリ | 11.0 GB |
OS | Windows 7 Home Edition |
開発環境 | Visual Studio 2008 |
言語 | C# |
Framework | .Net Framework 3.5 |
PHP でプログラムを組むと,毎度変数が定義されているかどうかチェックするのに迷って検索する羽目になるので,ここらでまとめ。 どうせやるなら,その他いろいろなパターンも。
$v | 未定義※1 | NULL | 0 | FALSE | '' | '0' | array() |
---|---|---|---|---|---|---|---|
isset($v) | false | false | true | true | true | true | true |
empty($v) | true | true | true | true | true | true | true |
is_null($v) | true※2 | true | false | false | false | false | false |
!($v) | true※2 | true | true | true | true | true | true |
$v == NULL | true※2 | true | true | true | true | false | true |
$v === NULL | true※2 | true | false | false | false | false | false |
$v == 0 | true※2 | true | true | true | true | true | false |
$v === 0 | false※2 | false | true | false | false | false | false |
$v == false | true※2 | true | true | true | true | true | true |
$v === fasle | false※2 | false | false | true | false | false | false |
$v == $undefined※1 | true※2, 3 | true※3 | true※3 | true※3 | true※3 | false※3 | true※3 |
$v === $undefined※1 | true※2, 3 | true※3 | false※3 | false※3 | false※3 | false※3 | false※3 |
- ※1: プログラム上で宣言・定義されていない状態。
- ※2: 実行時に "PHP Notice: Undefined variable" が出力される。
- ※3: 実行時に比較演算子右辺の未定義変数で "PHP Notice: Undefined variable" が出力される。
未定義の可能性がある $_POST とか $_GET とかの要素に "値が入っているか確認する" には isset を使おう、と。
PHP で関数の引数を省略したというか,本当は必要なんだけど記述し忘れたときに何がおこるのかを調べてみました.テストコードとしては,↓こんな感じ (便宜上,'すくりぷと.php' とします).
<?php
function test($p, $q)
{
echo 'test(';
echo is_null($p) ? 'null' : "'$p'";
echo ', ';
echo is_null($q) ? 'null' : "'$q'";
echo '); ';
}
test();
test('hoge');
test('hoge', 'fuga');
?>