-1

为什么不鼓励显示“回声语言构造”的代码(代码审查工具)。

如何解决这个问题。

1在此处输入图像描述

4

3 回答 3

4

您可以:

替换echoprint_r

print_r( $StateList->state_name )

而是返回值:

return $StateList->state_name

至于为什么您的 linter 不鼓励使用echo,这取决于您的编码标准和上下文。

例如,如果您希望遵循PSR-1 基本编码标准第 2.3 节规定:

文件应该声明新符号(类、函数、常量等)并且不会引起其他副作用,或者它应该执行具有副作用的逻辑,但不应该两者都做。

由于echo会产生副作用,例如,在声明新类的文件的上下文中不鼓励这样做。在这种情况下,您将改为返回该值。

于 2019-06-05T22:33:25.283 回答
0

Codacy 检测代码库中的 linting 问题。linting 问题可能是安全漏洞、代码风格问题等。

在您的情况下,使用 php“echo”是不好的做法。就像您不应该println在其他语言中使用一样。如果你需要打印一些东西,你应该使用记录器

于 2019-05-30T20:37:45.570 回答
0

如果您使用 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 }
 } ?>

如果您在控制器中,我建议使用对象设置或返回 $value。

希望它会有所帮助。

于 2019-06-05T22:02:02.597 回答