在程序中使用面向对象的编程方法而不是过程式编程方法实际上并不取决于语言(不管是不是 PHP),而是取决于您要解决的问题的类型。
(我只是在示例中使用伪代码,因为我对 PHP 不太熟悉。)
例如,如果您有一个程序,您只是按顺序执行一堆功能,那么程序就可以了。例如,如果它是一个简单的字符串操作程序,那么程序方法就足够了:
perform_truncation(my_string, 10)
to_upper(my_string)
perform_magic(my_string, hat, rabbit)
但是,如果您要处理许多不同的项目(例如文件,或者对象的任何其他表示形式),那么面向对象的方法会更好。
例如,如果您有一堆 Cars 并希望他们发送到 drive,那么在程序上,您可以执行以下操作:
drive_car(first_car)
drive_car(second_car)
在 OOP 中,Car 可以自行驱动:
RedCar myRedCar();
BlueCar myBlueCar();
myRedCar.drive();
myBlueCar.drive();
而且,由于每辆车都是不同的类别,它们的行为可以有不同的定义。此外,它们可能都是子类或Car,它们可能具有共同的功能。
这真的归结为问题的类型,这使得任何一种程序方法都比面向对象更好,反之亦然。
抛开程序化或面向对象的问题不谈,一个源文件有很多功能可能是一种“代码味道”。这也适用于包含许多功能的类,这些功能可以作为单独类中的单独功能更好地执行。
这里的问题可能是代码组织而不是决定选择过程或面向对象的编程。这里可能需要将函数组织到单独的源文件中,而不是放弃编写程序的过程方法。
毕竟,有很多程序是用过程式编程方法编写的,写得好,易于维护。