我是PHP新手,通常我会使用以下行来检查输入是否为空:
if(!isset($_SESSION['z']) || strlen(trim($_SESSION['z']) == 0))
{
echo "Unknown";
}
但是,如果用户键入数字0,脚本会将输入识别为空。如何更改这些行以将0识别为字符串?
您的解决方案本应有效。正如评论员deceze所指出的,你的第二个条件打错了——应该是strlen(trim($_SESSION['z'])) == 0
。
但另一种解决方案是使用严格相等的校验===
和!==
。
if(!isset($arr['z']) || trim($arr['z']) === '')
{
echo "Unknown";
}
如果值为NULL或空字符串,则会导致"未知"。但任何其他值都不满足条件,因此值0或0.0应该有效。
不过,你的初步解决方案还是不错的。只要纠正打字错误。
if (!isset($_SESSION['z']) || strcmp(trim($_SESSION['z']), '') == 0)
{
echo "Unknown";
}
如果两个string
相同,则函数strcmp
返回0。
<?php
session_start();
if(isset($_POST["z"])){$_SESSION['z']=$_POST["z"];}
if(!isset($_SESSION['z']) OR $_SESSION['z']==""){
echo "Unknown";
}else{
echo $_SESSION['z'];
}
?>
<form method="post"><input type="text" name="z"><input type="submit"></form>
这应该可以根据您的需要进行