私はPHPが初めてで、通常、これらの行を使用して入力が空かどうかを確認します。
if(!isset($_SESSION['z']) || strlen(trim($_SESSION['z']) == 0))
{
echo "Unknown";
}
しかし、ユーザーが数字の 0 を入力すると、スクリプトは入力を空として認識します。これらの行を変更して 0 を文字列として認識する方法は?
あなたのソリューションはうまくいったはずです。コメンテーター deceze が指摘したように、2 番目の条件はタイプミスである必要がありますstrlen(trim($_SESSION['z'])) == 0
。
ただし、別の解決策は、厳密な等しいチェック===
とを使用すること!==
です。
if(!isset($arr['z']) || trim($arr['z']) === '')
{
echo "Unknown";
}
これは、値が NULL または空の文字列の場合に機能し、結果は「不明」になります。ただし、他の値は条件を満たさないため、値 0 または 0.0 が機能するはずです。
しかし、繰り返しになりますが、最初のソリューションは適切です。タイプミスを修正するだけです。