if($ variable!='')澄清

时间:2012-06-29 08:52:39

标签: php

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';
    }

3 个答案:

答案 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)

必须使用

issetempty函数来确定变量是否存在且非空。

但是这个:

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)