【发布时间】:2019-05-29 13:47:01
【问题描述】:
【问题讨论】:
标签: php codacy github-codereviews
【问题讨论】:
标签: php codacy github-codereviews
您可以:
将echo 替换为print_r:
print_r( $StateList->state_name )
改为返回值:
return $StateList->state_name
至于为什么您的 linter 不鼓励使用 echo,这取决于您的编码标准和上下文。
例如,如果您想关注PSR-1 Basic Coding Standard,section 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。
希望它会有所帮助。
【讨论】: