1
if($hOne!='') {
   echo 'yes';
 } else {
   echo 'no';
}

所以有一段时间我一直在使用上面的代码来确定 id X 变量已设置,现在这工作正常,直到在 wordpress 网站上工作(我不会进入太多细节)但基本上最初从未接触过变量和按预期工作,如果您输入一个值然后删除该值,它似乎认为它已被设置。

我解决这个问题的一种方法是使用下面的代码,我的问题是,有没有更好的方法来做到这一点。

干杯

if (preg_match('/[A-Za-z]/i', $hone)) {
       echo 'yes';
     } else {
       echo 'no';
    }

结果使用了以下按预期工作的方法,谢谢大家:

if(isset($hone) and
       !empty($hone)) {
        echo '1';
    } else {
        echo '2';
    }
4

3 回答 3

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。)

于 2012-06-29T08:56:27.960 回答
1

issetempty函数必须用于确定变量是否存在并且是否为非空。

但是这个:

if (preg_match('/[A-Za-z]/i', $hone)) {
   echo 'yes';
} else {
   echo 'no';
}

检查变量(字符串)是否包含几乎一个字母(不管大小写)。实际上它也很愚蠢(它使用/../i-- 忽略大小写和模式A-Za-z

于 2012-06-29T08:59:44.907 回答
1

你不应该只if ($x != '')用来检查是否设置了变量。例如,我可以这样设置变量$x = ''。您应该检查它是否像这样设置:isset($x)并检查它是否已设置但为空:empty($x)

于 2012-06-29T08:59:56.977 回答