PHPer上級者になるために知っておきたいこと『関数仕様編 その2』がでました!
»
こんばんは。私が主宰しているPHP技術者認定機構の上級試験を題材とした古庄親方の コラム「PHPer上級者になるために知っておきたいこと」の
『関数仕様編 その2』がでました!
私もちょっと企画支援してます♪
###
今回も引数の話ですね。引数の型である「タイプヒンティング」について、少し学んでいきたいと思います。
PHPは所謂「動的型付け言語」になります。
「変数に明示的に型を指定せず、実行時に適切に型を推測してくれる」この型システムは大変に、
特に初学者にとっては便利なものではありますが。
「適切な推測」が、必ずしも本当に「プログラマの意図するところであるかどうか」については状況によるので、
場合によっては「困る」シチュエーションが、僅かながらに、存在します。
一つ、割と分かりやすい実例を。
$a = 2;
if (’2a’ == $a) {
echo “equal\n”;
} else {
echo “not equal\n”;
}
2aと2の比較なので当然………equalになります。trueです。falseにはなりません…困った事に。
是非、お手持ちの実行環境で試してみて下さい。
筆者はこの問題を勝手に「2a問題」と呼称していますが。
これを始めに聞いた時は、なにげに度肝を抜かれたものでございます。
近しい実例として、以下のケースで実際に「割と深刻な」問題を引き起こします。
(この続きはこちらから)
http://resocia.jp/column/1499/
SpecialPR