不鼓励使用echo语言构造。 (PHP)

时间:2019-05-29 13:47:01

标签: php codacy github-codereviews

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

如何解决此问题。

1enter image description here

3 个答案:

答案 0 :(得分:1)

您可以:

echo替换为print_r

print_r( $StateList->state_name )

改为返回值:

return $StateList->state_name

关于棉绒为什么不鼓励使用echo的原因,这取决于您的编码标准和上下文。

例如,如果您希望遵循PSR-1 Basic Coding Standard,则section 2.3指出:

  

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

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

答案 1 :(得分:0)

Codacy在代码库中检测棉绒问题。掉毛问题可能是安全漏洞,代码样式问题等。

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

答案 2 :(得分: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 }
 } ?>

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

希望这会有所帮助。