新手 - PHP - 测试 '空' 字符串

问题描述:

可能重复:
Double equals and tripple equals in php新手 - PHP - 测试 '空' 字符串

我想测试对非空各种类型的 '空' 的变量。自带了很多的一种情况是

如果一个字符串等于“‘’”(即两个单引号字符),然后做 XYZ,否则做ABC

我有不同的变量类型,可以是0,'0'(即字符'0',ASCII 48,而不是0)和“”(空字符串)。所有这些评估与“”“相同,该字符串包含两个单引号。显然,他们不一样!一个是两个字符串 - ASCII 39,ASCII 39 - 其他可能是0,ASCII 48等。

我已经想出了使用is_numeric()等的变通方法,但我忍不住想着一定有更好的办法。处理这类事情的首选方法是什么?

非常感谢您的耐心配合,这似乎是一个非常天真的问题。

如果你这样做相同的检查

if ($string === '') 

,那么你将得到的结果你是经过。

有关运营商类型及其影响的更多详细信息,请参见this previous SO answer

您可以使用相同的运算符(===)来检查类型和值。 有关更多信息,请参阅http://php.net/manual/en/language.operators.comparison.php

+0

太棒了!也很简单。非常感谢。我已经尝试过empty(),但是正如上面提到的那样,它在所有情况下都会返回true,但===似乎工作正常。 –

您还可以使用if(!empty($string))http://php.net/manual/en/function.empty.php了解更多信息。

+0

“if(!statement)”基本上是说“if not(statement)” – Charles

+0

empty()与检查给定变量是否等于“”不完全相同。如果给定数组为空,字符串没有内容,或给定变量包含数字零,则empty()也会返回TRUE。 –