我是 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";
}
如果两个s 相同,则该函数strcmp
返回 0 。string
<?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>
这应该可以按您的意愿工作