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
но на друга система, ако не са активирани, няма да работи.
3 за отговор № 2
По-добре е да се обърне внимание на проблема, отколкото да се премахне предупредителното съобщение.
Въпросът е този ред:
if(isset($canonical) && $canonical)
Използването на isset($canonical)
е добре, но вие използвате директно същата променлива в същия обхват, който причинява съобщението.
Променете го на следното:
<?php if( isset( $canonical ) ): ?>
<link rel="canonical" href="<?= $canonical ?>" />
<?php endif; ?>
Нямате нужда от допълнително && $canonical
ако приемем, че нямате код, който някога ще инициализира $canonical
променлива до нула или празно състояние.
Други съвети: 1. Използвайте <?php
вместо <?
"къси тагове" заради конфликт на символи с XML декларации. Разбирам по подразбиране по-новите версии на PHP са деактивирани. Имайте предвид, че <?= ?>
стенография (за echo
) винаги е разрешено. 2. Използвайте if: endif;
синтаксис за улесняване на проследяването на кода за визуализиране на страници.