gallu’s blog

エンジニアでゲーマーで講師で占い師なおいちゃんのブログです。

2a問題再びw

はぁい紳士淑女&そうじゃない諸君げんきか〜い?
今日は素敵ですばらしいPHPの仕様を、もっと深く掘り下げてお届けする「シリーズ 2a問題を考える」のお時間だよw

$a = 0;
switch ( $a ){
	case NULL:
	case false:
		echo 'orz';
		break;
	case 0:
		echo '(・ω・)';
		break;
}

このソースがもちろん「orz」になる理由はわかるよね?
間違っても「(・ω・)」ぢゃないよ?


でもこれを

$a = 0;
switch ( $a ){
	case 0:
		echo '(・ω・)';
		break;
	case NULL:
	case false:
		echo 'orz';
		break;
}

ってやると、もちろん「(・ω・)」になるんだ。


そうそうちなみに。

$a = 1;
switch ( $a ){
	case true:
		echo 'orz orz';
		break;
	case 0:
		echo '(・ω・)';
		break;
	case NULL:
	case false:
		echo 'orz';
		break;
}

は当然「orz orz」になるのはわかるよね?
もちろん2a問題の一環なのだから。

$a = "2a";
switch ( $a ){
	case 2:
		echo 'orz orz orz';
		break;
	case 0:
		echo '(・ω・)';
		break;
	case NULL:
	case false:
		echo 'orz';
		break;
}

でどこ通るかなんてぇのは自明の理だよね?
もちろん「case 2」だw


つまり、あれだ。
0はfalseでNULLで、それ以外のすべての値はtrueで。
"2a"は2になって、以下略。


すばらしい言語じゃないか。
何がどんな方向からどんな風にすばらしいのかは…言わせるな。政治的にまずいんだw


…知らずに使うと怖い言語だとは思うけど…まぁ…なんていうか…頭いてぇ…


追記
2a問題は「 素晴らしき自動的な世界〜或いは「型のない」世界〜 ( http://d.hatena.ne.jp/gallu/20061108/p1 ) 」をご覧くださいませませ。

言語が「出来る」ってどういうことだろ?

あちこちの人身売買広告見てしみじみ思うですが。
Javaの出来る人」「PHPの出来る人」「C#の出来る人」。
別所では「Java3年以上の経験の人」等々。


…出来るってなんだべさ?
Javaソースコードを3年間コピペしたら「Java 3年」なんだろうか?


いつもながら思うんだけど、このあたりの「あんまりに酷すぎる曖昧さ」には…最近あんまり何も感じないなぁ他人事だから(笑


…おいといて、と。


一応。スキルの判定を、もうちょいと、本人達のレベルアップ指針って意味もかねて、どうにかしたいモノではありますです。はい。
っちゅわけで、現在「グリッドシート」なる、スキルシートの代わりになるモノを作成中。
近日にでもα版くらいは出せるといいなぁ…って書いておくと自分への縛りになるから出さざるを得なくなるんじゃないだろうかというかなり他力本願なテストw