七种语法,您可以选择在PHP:马铃薯,马铃薯?总有几种方法可以在PHP中做同样的事情。其中一些是如此接近,一个人甚至想知道哪一个选择哪一个。事实上,如果它们是可互换的,为什么甚至选择?以下是您可以在PHP中自由选择的七种语法的列表。

选择首先依赖于技术地面,如速度,安全性,更少的错误代码。然后,它倾向于在人类水平上完成,如可读性,团队惯例和混淆去除。最后,它归结为简单的偏好,或毫无疑问的十年习惯。我通常的摩托车是做出选择,坚持下去,不要’除非他们加入该项目,否则试图说服人们采用它。毕竟,这只是一个角色建设的问题。

所以,这里有七个语法,您可以在PHP中选择,并且应该是一致的。它们不是编码约定,例如将卷曲括号{下一个或下一行放在下一个或下一行:那些是关键词等价物或代码布局。

回声或打印

其中一个永恒的追随者的PHP之战。 Echo采用无限数量的参数,而打印只需要一个,导致在打印时间连接所有内容。此外,打印返回1,而Echo返回void。还有<?=, in templates.
我记得使用Print进行调试,并为实际输出进行回声,导致更容易检查调试目的。

死亡或退出

两个都停止了代码。实际上,Die使用t_exit令牌,行为完全相同。用字符串染色用作最终消息,而整数作为错误代码返回。它们完全相同,应在可能的情况下被例外或assert()取代。

array()或[]

当然,[]非常优越。写入的字符少,表达更紧凑,现代PHP。任何试图说服你使用array()的人都是一个旧的程序员,有顽固的习惯。就像我。甚至,请考虑PHP 7.1还聘请了List()的相同语法:这将导致静态分析仪疼痛。另一方面,许多代码仍然使用array(),这对于向后兼容兼容非常重要。否则,你’re free to choose.

是的,虚假还是别的?

本次公约是三元,而不是二进制:您可能会遇到小写的租户,大写之一和混合案例的混合感受租户。最受欢迎的选择可能是 PSR-2’s convention.

哪个全局?

除了最近的标准之外,全局变量也可以通过全局关键字或通过$全球变量访问。 $全球始终可用,单个交互可能更快。另一方面,全局是更清洁的,多个变量更快。

array_push()和$数组[]

array_push()是一个函数标准,而[]是一个运算符。第二个是更快的,而且更紧凑,所以常见的智慧都是为了[]。使用array_pop()时,使用它的姐妹函数array_push()是有意义的,但这可能是我见过的唯一原因。我们可以建议[流行运营商吗?其他拉兰格有<< and >> to push and pop.

尤达比较

文字应该在左侧还是右侧?可读性期限存在一些影响:它有助于避免臭名昭着的分配而不是比较,但它也使得代码更难读取。最终,PHP没有’t make a difference.

缺少可交换的PHP语法

您是否知道完全可交换的其他PHP语法?离开我们A. 邮件 或者 鸣叫, 和我们’LL将它们添加到Exakat分析工具中。

他们没有’t达到这个列表

我想到了其他替代语法,但稍那么少:

  • array_merge.()和+分享数组的一些功能,但可能表现得太不同了。我们没有’在这里考虑它们,尽管极限与回声/打印接近,但也表现出不同的方式。
  • 包括/ include_once don’T具有相同的行为,但需要/包括可能是一个。
  • func_get_args.()和...:func_get_args()返回所有参数,而...可以只收集它们的一部分,因此它们没有可兑换。
  • 用a铸造到绳子。”,或用+ 0或* 1的整数?那些可能是鳞片的错误。
  • 级联与插值可能是一个有趣的一个:” $a $b ” versus $a.’ ‘.$b. I’m sure I’不与这个。
  • ‘ versus ” : they don’T具有相同的行为。

用exakat测试您的偏好

同时,您可以查看自己的代码 exakat.,并了解一致和不一致的行为。只需在代码上运行它,并查看报告。