連日の不機嫌マークごめんなさい!
だが私は謝らない。
言ってみたかったのに、すでに謝っていました。ごめんなさい。(2行ぶり2回目)
さて、今回の不満はPHPの鉄板ネタです。
気が付きさえすれば情報は溢れてます。
ちなみに勉強した本はこちら。
これで授業そっちのけでさっくり覚えました。
とてもおすすめ!!
明らかに基礎的な知識の範疇なのに曖昧だったので、しっかりやってよ!とゆーお話。
''(空文字)、Null、0は別のものなのに、PHP上で同じものとして扱われる問題です。
具体的にはこちら。名前と年齢のフォームがあり、空白の判定をします。
<?php if(!empty($_POST)){ if(!$_POST['name']){ echo '名前が未入力です。<br>'; } if(empty($_POST['age'])){ echo '年齢が未入力です。<br>'; } } ?> <html> <body> <p id="message"> </p> <form action="" method="post"> <div>名前<input type="text" name="name" value="Nazuna"></div> <div>年齢 <select name="age"> <option></option> <option value="0">0</option> <option value="1">1</option> <option value="2">2</option> </select>歳 </div> <input type="submit" value="送信"> </form> </body> </script> </html>
このときに、うっかり空判定に、empty($POST['age'])や!$POST['age']を使うととりあえず罠にはまります
0でも未入力になってしまうのです。0歳児は存在するよ!
とはいうものの、マニュアルには書いてあります。
こういう所在こそ最初に是非おしえてくだされ…
一緒に覚えておきたいのが、==(カッコ2つ)で比較すると、0と空文字とNullは全部Trueで返ってきます
ちょーど少し前に流行った、こちらを確認してください。
この例を踏まえて、この期の動作です。
0だと芯が入ってるので、先に抜かなきゃだめです。
Nullなら入れるだけでおっけー。
コードでいうと。
$トイレットペーパー=0; //トイレットペーパーの交換処理。 if ($トイレットペーパー==0){ echo '芯をを取り出す<br>' } echo '補充';
$トイレットペーパー=null にしても、「芯を取り出す」って出てきます。
その芯どこにあった!
今回は怒られませんが、処理によっては困ったことになります。
知ってればカッコ3つにするだけです。
運が悪いとはまります。
どーでもいいところで、つまづかないように!>ちょっと前のわたし
ちょっと前のなずな<「ハマッタヨー」