2

我写了很多这样的 if 语句来检查一个空变量,尤其是来自 mysql,但是有更好的/替代语法吗?

if($a!=""){
4

5 回答 5

7

你可以使用empty()功能

if(!empty($a)) {
于 2013-06-09T19:47:45.767 回答
3

最快的:

if ($a) { /* ... */ }

最有趣的:

if (isset($a[0])) { /* ... */ }
于 2013-06-09T19:48:52.917 回答
1

那么语法它是正确的。

但是" "不是空的,所以你可以看看trim()

我更喜欢将功能strlentrim

if (strlen(trim($a))

如果您希望更快,您可以制作自己的功能

function is_empty($string) {
  return (strlen(trim($string)) === 0);
}
于 2013-06-09T19:50:15.120 回答
0

如果你只是做一个班轮,那么你可以使用逻辑短路

$a && print ("Goodbye"); // same as $a != ""

或者

$a || print ("Hello World"); // same as $a == ""

这利用了 PHP(和大多数语言)如何优化二元运算符

对于第一种情况,如果 $a 产生一个真值,那么解释器知道它必须检查等式的右侧以确定表达式的结果。

如果它是一个虚假值,那么它不会评估右手边,因为它知道这并不重要。

类似的逻辑适用于 || 陈述

于 2013-06-09T19:55:08.063 回答
0

或者

!empty($a) ? (/* if not empty */) : (/* else */);
于 2013-06-09T19:56:32.933 回答