Severity: Notice
Message: Undefined variable: canonical
Filename: views/header.php
Line Number: 19
<? if(isset($canonical) && $canonical) { ?>
<link rel="canonical" href="<?= $canonical ?>" />
<? } ?>
php.ini中是否有设置我需要打开才能解决问题?
答案 0 :(得分:3)
最好解决问题,而不是取消警告信息。
问题是这一行:
if(isset($canonical) && $canonical)
isset($canonical)
的使用很好,但是您在同一范围内直接使用相同的变量,这会导致消息。
将其更改为:
<?php if( isset( $canonical ) ): ?>
<link rel="canonical" href="<?= $canonical ?>" />
<?php endif; ?>
您不需要额外的&& $canonical
,假设您没有将$canonical
变量初始化为空或空状态的代码。
其他提示:
1.使用<?php
代替<?
&#34;短标签&#34;因为符号与XML声明冲突。我理解默认情况下,较新版本的PHP禁用了短标签。请注意,始终允许使用<?= ?>
简写(echo
)。
2.使用if: endif;
语法使页面呈现代码更容易理解。
答案 1 :(得分:1)
首先让我警告你,你正在使用short open tag
进行编码,这不是一个好习惯。请试试这个: -
问题也在你的情况下,也在你的链接代码中,所以试试这个: -
<?php if(isset($canonical) && !empty($canonical)) { ?>
echo "<link rel="canonical" href=" .$canonical ." />";
<?php } ?>
注意: - 为什么我上面说的是因为你可以启用short open tag
的设置,但是如果它们没有启用则在其他系统上启用它将无效。