jus*_*joe 12 php wordpress coding-style
有人说当你的PHP代码和应用程序使用全局变量时,它必须是意大利面条代码(我假设这一点).我经常使用WordPress.据我所知,这是伟大的PHP软件附近最好的事情.它使用许多全局变量在其组件之间进行交互.
但是忘记这一点,因为坦率地说,这是我唯一知道的事情.所以它完全有偏见; D
所以,我只是好奇,意大利面条代码的特点是什么?
PS:我唯一知道的是WordPress.所以,希望这可能有助于某些人在PHP上开发完整的Web应用程序(例如,Stack Overflow网站)上几乎没有经验的人给出一个很好的答案.
Ale*_*ski 22
goto,从本质上讲,缺乏设计和预见,只是混乱的黑客混杂在一起.这适用于任何语言,而不仅仅是PHP.
对于在PHP上开发完整Web应用程序的经验不足的人(例如,Stack Overflow网站)
仅供参考,但Stack Overflow不是用PHP开发的.
好吧,谈到你发表的评论,解释很简单.使用global运算符使变量的来源未知,就像意大利面条的另一端.它可以在任何地方定义.所以,当你调用你的函数时,你不知道这个变量有什么价值.而不是直接传递变量使它变得简单明了:
function hello_testing($conditional_random) {
if ($conditional_random)) {
echo "foo is inside";
}
}
Run Code Online (Sandbox Code Playgroud)
PS http://en.wikipedia.org/wiki/Spaghetti_code
Spaghetti代码具有特定的特征,可以将其与普通的差代码区分开来.Spaghetti极其复杂且非结构化,因此很难跟踪整个程序的流程.这就像试图在一碗肉酱里解开面条.
这就是为什么GOTO在这种情况下经常引用语句(恐惧词!):GOTO语句将控制转移到代码库中另一个任意定义的位置.大多数编程语言都有可以滥用的命令来模拟goto样式行为; 例如,使用异常来实现常规业务逻辑而不是处理错误.
全局变量对意大利面条代码有贡献,因为这些值是在当前程序单元范围之外分配的.这可能使得难以确定变量被设置为给定值的代码库中的位置(或者实际上是否将其设置为任何值).
顺便说一下,使用goto陈述并不意味着程序是意大利面条.使用完全可能编写清晰,结构良好的代码goto,只需要很多自律就不要滥用它的灵活性.现代编程语言使其使用不必要,并且是不可取的.