Severity: Notice
Message: Undefined variable: canonical
Filename: views/header.php
Line Number: 19
<? if(isset($canonical) && $canonical) { ?>
<link rel="canonical" href="<?= $canonical ?>" />
<? } ?>
問題を修正するために有効にする必要があるphp.iniに設定はありますか?
回答:
回答№1は1まず、使用していることを警告します short open tag
コーディングには適していません。これを試してください:
問題はあなたの状態にもあり、リンクコードにもありますので、これを試してください:
<?php if(isset($canonical) && !empty($canonical)) { ?>
echo "<link rel="canonical" href=" .$canonical ." />";
<?php } ?>
注:-の設定を有効にしたので大丈夫だから、上記のように言う理由 short open tag
しかし、他のシステムでは有効になっていないと機能しません。
回答№2の場合は3
警告メッセージを抑制するよりも、問題に対処することをお勧めします。
問題はこの行です:
if(isset($canonical) && $canonical)
の用法 isset($canonical)
ただし、同じスコープ内で同じ変数を直接使用しているため、メッセージが表示されています。
これに変更してください:
<?php if( isset( $canonical ) ): ?>
<link rel="canonical" href="<?= $canonical ?>" />
<?php endif; ?>
余分なものは必要ありません && $canonical
あなたが「初期化するコードを持っていない」と仮定する $canonical
nullまたは空の状態の変数。
その他のヒント: 1.使用する <?php
その代わりに <?
シンボルがXML宣言と競合するため、「短いタグ」。デフォルトでは、PHPの新しいバージョンでは短いタグが無効になっています。ことに注意してください <?= ?>
略記 echo
)は常に許可されます。 2.を使用します if: endif;
ページレンダリングコードを追跡しやすくする構文。