10/10/2018, 00:20
Lập trình PHP theo OOP và funtion thường cái nào chạy nhanh hơn?
Lập trình PHP theo OOP và funtion thường cái nào chạy nhanh hơn? Thực chất việc này cãi nhau ở các diễn đàn khác cũng khá nhiều. Theo các bác thì thế nào??
Bài liên quan
Thường thì với OOP người ta cũng có các function (method) để có thể sử dụng. Cho nên, nếu lập trình kém đầu tư nghiên cứu tối ưu mã thì là chậm cả.
Do đó, vấn đề không phải là dùng Class hay chỉ thuần function. Nếu mà dùng chỉ các class tích hợp sẵn với PHP so với các function cũng của PHP thì khả năng nhanh chậm là như nhau.
PHP là một ngôn ngữ lập trình web, nên linh hoạt dùng phối hợp cả hai để hiệu suất thi hành được cao, cần học hỏi cách tiếp cận của phpBB. Còn nếu cứ cứng nhắc thì... nhiều khi lâm vào cảnh tự ta 'phát minh' ra cái đã có sẵn trong PHP và đã được tối ưu => chạy chậm là cái chắc.
Kết luận: OOP & function không mâu thuẫn nhau, so sánh chúng là điều không cần thiết, để thời gian tập trung vào tối ưu code sẽ tốt hơn. Mọi tranh cãi kiểu này chỉ tốn thời gian vô bổ.
Thên nữa với Function bạn không thể Overwrite nếu Function đã tồn tại.
Nhưng với OOP thì bạn có thể Overwrite method của một lớp bằng việc kế thừa Lớp chứa method đó bởi một lớp con mới, kết quả là bạn sẽ có thể cho phép tồn tại 2 method có cùng định danh và có thể sử dụng kết quả của method kia, có nghĩa là dù Overwrite nhưng method của lớp cha vẫn còn tồn tại trong chính nó.
Việc quản lí code cũng trở nên dễ dàng hơn với OOP.
Với một project sử dụng OOP 100% thì chắc là người phát triển cái project đó có lẽ là tín đồ của Java ^^
ví dụ như
function &bxp() {
return BxPlatform::getInstance();
}
function &view() {
return BxPlatform::getInstance()->getView();
}
Về sơ sơ thì dao (function) và kéo (OOP) được dùng ở các lĩnh vực khác nhau. Đôi khi sử dụng lẫn nhau mới được việc.
Mới học thì cầm dao dễ hơn , còn học Y vài năm mới thành thạo dùng kéo (ví dụ thế). Nhanh hay không dùng vào trường hợp nào nữa, và tay nghề người sử dụng như thế nào. Tránh trường hợp dùng mổ trâu để giết gà.
OOP như @Conan nói. Tuy nhiên, nếu cùng 1 trình độ, cùng một dự án thì thường là code function nhanh hơn OOP vì lưu một object cần nhiều bộ nhớ hơn.