эхо языковой конструкции не рекомендуется. (PHP) - PullRequest
0 голосов
/ 29 мая 2019

почему кодирование (инструмент просмотра кода), показывающее "эхо-языковая конструкция, не рекомендуется".

как решить эту проблему.

1 : enter image description here

Ответы [ 3 ]

1 голос
/ 06 июня 2019

Вы можете либо:

Заменить echo на print_r:

print_r( $StateList->state_name )

Вместо этого вернуть значение:

return $StateList->state_name

Что касается того, почему ваш линтер не рекомендует использовать echo, это зависит от вашего стандарта кодирования и контекста.

Например, если вы хотите следовать базовому стандарту кодирования PSR-1 , , раздел 2.3 , гласит:

Файл ДОЛЖЕН объявлять новые символы (классы, функции, константы и т. Д.) И не вызывать других побочных эффектов, либо ДОЛЖЕН выполнять логику с побочными эффектами, но НЕ ДОЛЖЕН выполнять оба этих действия.

Поскольку echo создает побочный эффект, его не следует поощрять, например, в контексте файла, который объявляет новый класс. В этом контексте вы должны вместо этого вернуть значение.

0 голосов
/ 06 июня 2019

Если вы используете for / foreach в представлении, его легко решить:

<?php for($i=1; $i<=$nbPage; $i++){
      if($i==$page){ ?>
            <span> <?= filter_var($i, FILTER_SANITIZE_FULL_SPECIAL_CHARS) ?> </span>
       <?php } else{ ?>
            <a href="index.php?access=blog&p=<?= filter_var($i, FILTER_SANITIZE_FULL_SPECIAL_CHARS) ?>"><?= filter_var($i, FILTER_SANITIZE_FULL_SPECIAL_CHARS) ?></a>
      <?php }
 } ?>

Если вы находитесь в Контроллерах, я бы предложил использовать настройку объекта или вернуть значение $.

Надеюсь, это поможет.

0 голосов
/ 30 мая 2019

Codacy обнаруживает проблемы с линтингом в вашей кодовой базе.Проблемы со связыванием могут быть из-за ошибок безопасности, проблем со стилем кода и т. Д.

В вашем случае плохой практикой является использование php "echo".Также как вы не должны использовать println на других языках.Если вам нужно что-то напечатать, вы должны использовать регистраторы

...