1

私はPHPが初めてで、通常、これらの行を使用して入力が空かどうかを確認します。

 if(!isset($_SESSION['z']) || strlen(trim($_SESSION['z']) == 0))
 {
 echo "Unknown";
 }

しかし、ユーザーが数字の 0 を入力すると、スクリプトは入力を空として認識します。これらの行を変更して 0 を文字列として認識する方法は?

4

3 に答える 3

2

あなたのソリューションはうまくいったはずです。コメンテーター deceze が指摘したように、2 番目の条件はタイプミスである必要がありますstrlen(trim($_SESSION['z'])) == 0

ただし、別の解決策は、厳密な等しいチェック===とを使用すること!==です。

if(!isset($arr['z']) || trim($arr['z']) === '')
{
echo "Unknown";
}

これは、値が NULL または空の文字列の場合に機能し、結果は「不明」になります。ただし、他の値は条件を満たさないため、値 0 または 0.0 が機能するはずです。

しかし、繰り返しになりますが、最初のソリューションは適切です。タイプミスを修正するだけです。

于 2013-08-31T14:23:54.847 に答える