if($hOne!='') {
echo 'yes';
} else {
echo 'no';
}
有一段时间我一直在使用上面的代码来确定id X变量已设置,现在这个工作正常,直到在wordpress网站上工作(我不会进入太多细节)但基本上最初的varabile从来没有触摸并按预期工作,如果您输入一个值,然后删除该值,它似乎认为已设置。
我绕过这个方法是使用下面的代码,我的问题是,有没有更好的方法来做到这一点。
干杯
if (preg_match('/[A-Za-z]/i', $hone)) {
echo 'yes';
} else {
echo 'no';
}
结果使用下面的按预期工作,谢谢大家:
if(isset($hone) and
!empty($hone)) {
echo '1';
} else {
echo '2';
}
答案 0 :(得分:5)
右。我的建议是回去阅读PHP文档。制作一个星期或两个项目,让大多数部分至少瞥见。
您想使用isset或空。
if (isset($hOne)) { }
将检查变量是否存在,
if (empty($hOne)) { }
检查它是否已设置但为空。
为了帮助您学习PHP,我建议您将其放在应用程序的顶部:
$test_server = $_SERVER['SERVER_NAME'] == "127.0.0.1" || $_SERVER['SERVER_NAME'] == "localhost" || substr($_SERVER['SERVER_NAME'],0,3) == "192";
ini_set('display_errors',$test_server);
ini_set('display_startup_errors',$test_server);
error_reporting(E_ALL|E_STRICT);
(或者,如果您不在本地工作,只需将$ test_server设置为1。)
答案 1 :(得分:1)
isset
和empty
函数来确定变量是否存在且非空。
但是这个:
if (preg_match('/[A-Za-z]/i', $hone)) {
echo 'yes';
} else {
echo 'no';
}
检查变量(字符串)是否包含几乎一个字母(不管大小写)。
实际上它也很愚蠢(它使用/../i
- 忽略大小写,并且模式A-Za-z
)
答案 2 :(得分:1)
您不应该只使用if ($x != '')
来检查是否设置了变量。例如,我可以设置变量$x = ''
。您应该检查它是否设置如此:isset($x)
并检查它是否已设置但为空:empty($x)