下記のようにformで受け取った値をチェックしているのですが
未入力を認めないためサーバー側で検査しております。
とても基本的なことなのかもしれませんが
未入力をcount($text)==0ではfalse判定されてしまいます。(//here)
なぜかと思い、取得している値をdumpしてみたのですが、 下記の通りlength=0にかかわらず
int 1が返ってきます。
もちろん、emptyによって判定はできるのですが
php上はどのように認識されているのでしょうか。
string length=0はcount($text)==0と等価ではないのでしょうか?
また、等価ではないとしたら、int 1は何をさしており、lengthとどのような点で
相違するのでしょうか。
そもそも文字列を数えるのはstrlenまたはmb_strlenを使用すべきと認識はしているので
countも使用することはできると誤認しており、マニュアルを見ると
配列の要素数を検査する用途が記載されております。
マニュアル
マニュアルを見てもなぜ文字列に対して使用してもエラーにならないのかがわからなかったのですが。。
基本的なことで申し訳ございませんが
よろしくお願い申し上げます。
php
1<input type="text" name="tex"> 2 3<?php 4$text=$_POST['tex']; 5if(count($text)==0){//here 6echo "error " 7} 8var_dump($text); 9//string '' (length=0) 10 11var_dump(count($text)) 12//int 1
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/09/22 14:21