スレッド表示 | フラット表示〕 全トピック 920 件中 605 番目 次≫ ≪前

NULLの解釈について(is_null()関数)

created: 2004-05-25 16:08 | modified: 2004-05-25 18:18 | reply: 2

[1614] NULLの解釈について(is_null()関数)

user: 天現寺みるく | created: 2004-05-25 16:08
PHP4から使用できる「is_null」関数についてマニュアルやGoogleで調べたのですが、スッキリしない部分があったので質問させてください。

FORMのテキストボックス"hoge"に、何も入力せずにSubmitした場合、$_POST['hoge']には何も入っていないはずなのに、is_null($_POST['hoge'])を通すと、FALSEとして返されます。

つまり
( $_POST['hoge']=="" )の場合、TRUEが返され、
( is_null($_POST['hoge']) )の場合、FALSEが返されます。

マニュアルにはNULLの定義の1つとして
「(変数に)値が代入されていない場合」と記述されているのですが、今回のケースでは「『 $_POST['hoge'] 』には空のstringが代入されたのでNULLとはみなさない。」という解釈になるのでしょうか?

#var_dump($_POST['hoge'])の結果では「string(0)""」でした。

ちょっと文章がおかしくなっちゃいましたが、どなたかご存知の方がいらっしゃいましたら、ご提言をよろしくお願いいたします。
reply: 1615 返信 編集 削除

[1615] 天現寺みるくさんの解釈で合ってると思いますよ

user: hamaji | created: 2004-05-25 16:53
フォームの値を受け取るとis_null()の場合は、falseが返ってくるで合ってると思います。

NULLチェックのやり方はいろいろあると思いますが、

is_null($_POST['hoge'])はFALSE
empty($_POST['hoge'])はTRUE
$_POST['hoge'] == ""はTRUE
ですね。(だったと思います。)

ちなみにempty()は使えそうですが、
『0』が数値、文字問わず、空とみなされ
TRUEを返すのでご注意を。

なので、私はNULLチェックは
$_POST['hoge'] == ""を使うか
strlen($_POST['hoge']) <= 0を使ってます。
Parent: 1614  reply: 1616 返信 編集 削除

[1616] 感謝します

user: 天現寺みるく | created: 2004-05-25 18:18
解釈が間違っていないようでしたので、だいぶスッキリしました。
hamajiさん、迅速なご回答、ありがとうございました。

#PHPは関数やツールが豊富なので好きですが、本質を理解しないとハマっちゃいますね。(笑)
もっと勉強します。
Parent: 1615  返信 編集 削除
スレッド表示 | フラット表示〕 全トピック 920 件中 605 番目 次≫ ≪前
ページの一番上へ
Googleグックマークに登録 Yahooグックマークに登録 livedoorクリップに登録 @niftyクリップに登録 はてなブックマークに登録 deliciousに登録 Buzzurlに登録 FC2ブックマークに登録
最近更新された掲示板トピックス
管理人Blog
Yahoo Search

最近更新したNote
PHPマニュアル
今日のブックマーク
PHPマニュアル関数検索
関数名を入力し検索ボタンをクリック↑