我听说PHP最近遭受了很多打击。在很多项目中,我已经看到了疯狂的PHP代码库 - 你真的很想知道这个人在编写代码时是否使用致幻药物。有时,我想知道如果初始开发人员对不要做什么有更多的指导,代码会是什么样的。
但是,我也看到一些非常有条理的PHP项目,这些项目是用100%OOP完成的,并且很乐意维护,但它们不是由“php程序员”编写的。
我向所有初级开发者提供Java Anti-Patterns的链接。该页面的一个好处是特定于Java的示例,因为Java的许多功能都适用于常见错误。我希望找到类似的PHP列表,但谷歌搜索没有透露任何有意义的内容。
what a developer should know when programming PHP已经有一些问题,但我想关注的是负面问题。
您在PHP中看到的常见问题应该避免哪些常见问题以及以更好的方式执行相同操作的常见解决方案是什么?
我认为会提到一些明显的例子,但不是特定于PHP的:
以下是我将考虑PHP特定的一些示例:
那么,你最喜欢的PHP 不应该,你是如何做到的?
答案 0 :(得分:16)
我不同意这个:
PHP是一种模板语言。虽然我同意实现MVC的概念,但我不明白为什么需要在生成Web输出时实现另一个DSL。
答案 1 :(得分:8)
添加结束“?>”标记到php文件的末尾可能导致意外地将白色空格推送到输出缓冲区。 PHP解释器会自动为文件添加结束标记,手动执行它有点反模式。
答案 2 :(得分:5)
$_GET
或$_POST
而不检查并清理它。php.ini
权利。index.php
。$_SESSION
。答案 3 :(得分:4)
我当前的烦恼是查询函数的不一致 - 返回类型。这是当您调用函数执行查询时,它返回
强制您检查返回类型并专门处理每个案例。简单地总是返回一个包含0,1或n个元素的数组会更好。
答案 4 :(得分:2)
我最喜欢的一个不应该是:
$query = 'select * from users where username = ' . $_POST['username'];
它会比那更可怕吗?
答案 5 :(得分:0)
如果我必须包括一个喜欢的,那么它必须是karim79发布的那个:
$query = 'select * from users where username = ' . $_POST['username'];
PHP中的许多开发人员都陷入了结构化时代。 PHP支持类和对象,因为不久之前,我只是不明白为什么人们将PHP硬编码为html,没有模板或根本没有。
我相信,如果有这么多开发人员继续这样的编程,其他语言的开发人员,如.NET或Java,都有权批评该语言。 PHP是一种非常优秀的语言,非常灵活,仍然有点小,但正在增长,但许多人只是没有得到它,他们想要的只是通过制作旧的经典副本和解决方案来解决。糊。
答案 6 :(得分:0)