if 语句表示变量不存在的情况


If statment for if a variable doesn't exist?

我对PHP很陌生,这让我陷入了循环。

所以我理解一些基本的 PHP IF 语句,例如"if 包含"超过",但当涉及到我的例子时;我有点困惑。

下面的代码用于 SEO 标题标签。目前它只是回显以下示例:

霍比特人海报 #1 - 电影海报

我将如何创建一个 IF 状态,如果movie_name和poster_name不存在,那么它只是回声的"电影海报"

<title><?php echo $movie['movie_name']; ?> <?php echo $poster['poster_name']; ?> - Movie Posters</title>

选项 1:

<title><?php echo (isset($movie['movie_name'])) ? $movie['movie_name'] : ''; ?> <?php echo (isset($poster['poster_name'])) ? $poster['poster_name'] : ''; ?> - Movie Posters</title>

选项 2:

$movie_name = (isset($movie['movie_name'])) ? $movie['movie_name'] : '';
$poster_name = (isset($poster['poster_name'])) ? $poster['poster_name'] : '';
<title><?php echo $movie_name; ?> <?php echo $poster_name; ?> - Movie Posters</title>

有很多方法可以做到这一点。希望这些能为您指明正确的方向。

换一种方式思考:

如果(您有movie_name或poster_name)显示破折号

<title><?php 
    $separator='';
    if (isset($movie['movie_name'])) { echo $movie['movie_name'].' '; $separator='- '; }
    if (isset($poster['poster_name'])) { echo $poster['poster_name'].' '; $separator='- '; }
    echo $separator;
?>Movie Posters</title>

由于我们似乎都在这里发布了我们自己提出的解决方案,这是我的解释。建立您拥有的所有内容的字符串,然后修剪任何多余的空格。基本上建立在@John孔德的方法之上......他几乎第一次就搞定了。这只是看待如何使用PHP的一种不同方式。

// If either are set, echo a dash
if (isset($movie['movie_name']) || isset($poster['poster_name'])) {
    $title = $movie['movie_name'];
    $title .= ' ';
    $title .= $poster['poster_name'];
    $title .= ' - '
}
$title .= 'Movie Posters'
echo trim($title)

另请注意,您可以使用以下语法来回显变量:

<span>Random number: <?= rand() ?></span>
<small><?= $text_to_go_in_small ?></small>