答案 0 :(得分:5)
不,因为exit
是一个过程语言构造,而不是任何类的成员函数。单一责任原则应该适用于面向对象的编程,这种编程不包含PHP语言的整个基础(只是其中的一部分)。
答案 1 :(得分:2)
技术上,是的。但是,确切的违规行为不是 坏......单一责任原则实际上是一个可以应用于任何代码单元的抽象原则。在Steve McConnell's Code Complete 2中,他实际上将此视为 cohesion 。在实践中,这是用于例程的单一责任原则的更具体形式。
根据他的最理想的凝聚力是功能凝聚力,其中一个例程只执行一个操作(他显示的例子是sin()
,getCustomerName()
,{ {1}}等)。所以,eraseFile()
做了两件事。因此它显示 Temporal cohesion (操作在同一例程中完成,因为它们是同时完成的。)
现在,exit()
的原始参数是应用程序的返回状态(请参阅:linux exit status codes)。在C中,这是从exit($arg)
返回的整数值。但由于PHP没有本机函数,因此将其添加到main()
参数中。尝试一下,添加exit()
,程序的返回值将是状态2(0通常是成功的,请参阅are there any standard linux exit status codes)。
但是,由于PHP进入门槛较低,大多数开发人员可能不会了解状态代码。所以,它被接受了一个字符串。如果参数是字符串,则 status 将在STDOUT上回显,然后应用程序终止。如果它是一个整数,它将从程序返回。所以这是一件神器。
现在,这是一个问题吗?并不是的。这是理想的吗?不,但它也不可怕,因为它们是相关的。最后,我不会因此失眠......