0

私はこのコードを実行します:

<?

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

?>

問題は、$map が空の場合、エコーしないことです。<br />

$map が本当に空かどうかを確認するために、次の 2 つの方法を試しました。

  • echo $map; // 結果が空になり、ページに注意が表示されます。
  • var_dump($map); // 結果:string(937) " "

私の質問は何string(937) " "を意味し、どうすればコードを機能させることができますか? 私も試しました:

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

しかし、これまでのところ、この最後のコードは間違っており、エラーが発生するだけです。

4

2 に答える 2

0

これは、スペースを含む文字列があることを意味します。おそらく、var は以前は間違って空にされた文字列でした。アプリケーションの目的に応じて、私が提案できる解決策の 1 つです。

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

実際には、文字列に空白が含まれていることを意味するだけだからです (これは、" " にスペースがある理由を説明しています)。$map 値を取得する場所を見つけて、そこにいくつかの検証を配置するようにしてください。

アレックス

于 2013-11-05T02:57:02.610 に答える
0

変数が存在しない場合、またはその値が等しい場合、変数は空と見なされますFALSE

あなたの変数は、スペースを含む文字列であり、これは と評価されるためTRUE、空ではありません。

を使用する代わりにempty()、かどうかを確認できtrim($map) === ''ます。

于 2013-11-05T02:53:43.657 に答える