2015-05-13 4 views
1
Severity: Notice 

Message: Undefined variable: canonical 

Filename: views/header.php 

Line Number: 19 


<? if(isset($canonical) && $canonical) { ?> 
    <link rel="canonical" href="<?= $canonical ?>" /> 
    <? } ?> 

Есть ли настройка в php.ini Мне нужно включить, чтобы исправить проблему?php Неопределенная переменная каноническая ошибка

+0

http://stackoverflow.com/questions/4261133/php-notice-undefined-variable-and-notice-undefined-index – aioobe

+0

@aioobe связанный вопрос не отвечает на этот вопрос. – Madbreaks

ответ

1

Прежде всего позвольте мне предупредить вас, что вы используете short open tag для кодирования, которая не является хорошим practice.Please попробовать это: -

вопрос находится в вашем состоянии также и в вашем коде ссылки также, Так что попробуйте это : -

<?php if(isset($canonical) && !empty($canonical)) { ?> 
    echo "<link rel="canonical" href=" .$canonical ." />"; 
    <?php } ?> 

Примечание: - Почему я говорю, как и выше, потому что это нормально, что вы включили установку для short open tag но на другой системе, если они не включены она не будет работать.

3

Лучше решить проблему, а не подавить предупреждающее сообщение.

Проблема эта линия:

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;, чтобы сделать код визуализации страницы более удобным.

+0

Я думаю, php не согласен с тобой: http://3v4l.org/3vo2F – Rizier123

+0

@ Rizier123 Эта ссылка не активирована 'E_NOTICE'. – Dai

+0

Лучше: http://3v4l.org/j6juh? – Rizier123

Смежные вопросы