3

我正在尝试为我的网站页面上的某些元标记定义值,但是,我不一定要在每个页面上定义它们。

<?php if ($_SERVER['SCRIPT_NAME'] != '/index.html'): ?>
<meta name="description" content="<?php echo $page_info; ?>"/> }
<?php endif; ?>

如您所见,除了 index.html 之外,我已将其设置为在每个页面上进行解析,但是,我还想创建以下条件:

只有在 $page_info 被定义时才会解析,如果没有,它根本不会解析php if.

4

1 回答 1

4

您是否正在寻找该isset()功能?

<?php if ( isset( $page_info ) && $php_info ): ?>
<meta name="description" content="<?php echo $page_info; ?>"/> }
<?php endif; ?>

查看文档以获取有关isset().

isset— 确定变量是否已设置且不为 NULL

我在这里使用的条件表达式检查是否$page_info存在一个名为的变量,并且它不是一个“假”值。假值是任何在转换为布尔值时可能被视为假值的东西,例如(取自docs):

  • 布尔值 FALSE 本身
  • 整数 0(零)
  • 浮点数 0.0(零)
  • 空字符串和字符串“0”
  • 一个元素为零的数组
  • 具有零成员变量的对象(仅限 PHP 4)
  • 特殊类型 NULL(包括未设置的变量)
  • 从空标签创建的 SimpleXML 对象
  • 其他所有值都被视为 TRUE(包括任何资源)。

我可以提出的另一项建议是不要明确测试您要排除的页面。而是构建您要排除的所有页面的数组,然后使用in_array()调用来检测它是否在列表中:

$exclude_url = array(
  '/index.html',
  '/about.html'
  '/faq.html'
);

if ( !in_array( $_SERVER[ 'SCRIPT_NAME' ], $exclude_url ) ){
  // page should NOT be excluded!
}
于 2013-06-23T19:33:55.690 回答