为什么不鼓励显示“回声语言构造”的代码(代码审查工具)。
如何解决这个问题。
1:
您可以:
替换echo
为print_r
:
print_r( $StateList->state_name )
而是返回值:
return $StateList->state_name
至于为什么您的 linter 不鼓励使用echo
,这取决于您的编码标准和上下文。
例如,如果您希望遵循PSR-1 基本编码标准,第 2.3 节规定:
文件应该声明新符号(类、函数、常量等)并且不会引起其他副作用,或者它应该执行具有副作用的逻辑,但不应该两者都做。
由于echo
会产生副作用,例如,在声明新类的文件的上下文中不鼓励这样做。在这种情况下,您将改为返回该值。
Codacy 检测代码库中的 linting 问题。linting 问题可能是安全漏洞、代码风格问题等。
在您的情况下,使用 php“echo”是不好的做法。就像您不应该println
在其他语言中使用一样。如果你需要打印一些东西,你应该使用记录器
如果您使用 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。
希望它会有所帮助。