0

我运行这段代码:

<?

$map = do_shortcode('[codepeople-post-map]');    
if (empty($map)) {echo '<br />'; } else {echo $map;}

?>

问题是当 $map 为空时,它不会回显<br />

我尝试了这两种方法来查看 $map 是否真的为空:

  • echo $map; // 结果为空,并在页面上显示注释。
  • var_dump($map); // 结果:string(937) " "

我的问题是什么string(937) " "意思,我怎样才能让我的代码工作?我也试过:

<? if ($map == string(937) " ") {echo '<br />'; } else {echo $map;} ?>

但是到目前为止没有成功,这最后一个代码是错误的,只是给出了错误。

4

2 回答 2

0

如果一个变量不存在或者它的值等于FALSE

您的变量是一个带有空格的字符串,其计算结果为TRUE,因此它不为空。

empty()您可以检查 if ,而不是使用trim($map) === ''

于 2013-11-05T02:53:43.657 回答
0

好吧,这意味着您有一个带有空格的字符串。可能 var 以前是一个被错误清空的字符串。我可以建议您一种解决方案,具体取决于您的应用程序的目的。

 if(trim($map) == "" || $map == null)
 {
      echo "<br />";
 }
 else
 {
      echo $map;
 }

因为实际上它只意味着字符串包含一个空格(这解释了为什么“”中有一个空格)。您应该尝试找到获得 $map 值的位置并尝试在那里进行一些验证。

亚历克斯

于 2013-11-05T02:57:02.610 回答