Lợi ích của PHP là gì? [đóng cửa]


14

Mọi người đều biết rằng những người có thành kiến ​​với các ngôn ngữ lập trình nhất định. Đặc biệt là PHP dường như gặp phải các vấn đề trong quá khứ và một số thứ khác (như kiểu lỏng lẻo) và thường được gọi là ngôn ngữ lập trình không nghiêm trọng không nên được sử dụng cho các ứng dụng chuyên nghiệp.

Trong trường hợp đặc biệt đó PHP: Làm thế nào để bạn tranh luận sử dụng PHP làm ngôn ngữ lập trình đã chọn cho các ứng dụng web? Lợi ích là gì, PHP ở đâu tốt hơn ColdFusion, Java, v.v.?


5
PHP là một cách tiếp cận khu vực, xâm lấn tối thiểu để điều trị ung thư hiện đang trải qua giai đoạn thử nghiệm lâm sàng giai đoạn II và giai đoạn III. PHP cũng có thể giúp hiểu các va chạm băm tốt hơn. Các nhà tổ chức dự án PHP cũng giúp các cơ quan thực thi pháp luật khác nhau chống lại các vi phạm gửi thư hàng loạt không được yêu cầu và thương mại và công việc chung để giúp giảm lượng thư rác được gửi và nhận trên Internet. PHP cung cấp các nhóm hỗ trợ tại vài chục địa điểm trên khắp Massachusetts. PHP là một loại chương trình được sử dụng để điều trị bệnh tâm thần và lạm dụng chất gây nghiện. PHP nằm trong lớp 3 MPLS VPN (RFC2547).
Công việc

Mỗi ngôn ngữ có người ghét / người ngưỡng mộ của nó. Tôi sẽ không nói rằng PHP đặc biệt ghét so với các ngôn ngữ khác. Infct Tôi sẽ nói rằng một ngôn ngữ càng ngưỡng mộ thì nó càng có nhiều người ghét nó. Tôi chắc chắn rằng chúng ta có thể mã hóa rằng : (admirers lang X/haters lang X) = AcmeConstant . AgeFactor(Lang X Age). Trong đó AcmeContant không thay đổi đối với tất cả các ngôn ngữ <(;-)
Martin York

1
Tôi sử dụng php để chứng minh cho mọi người thấy cách không thiết kế ngôn ngữ.
dan_waterworth

Câu trả lời:


13

Josh K đã chỉ ra một số điểm khá tốt , vì vậy tôi sẽ không nhắc lại điều đó. Thay vào đó tôi sẽ thêm một số nữa.

Nó được giải thích.

Chỉ cần FTP / SSH vào tài khoản của bạn, thay đổi nội dung cần được thay đổi và uy tín! Không cần phải biên dịch, để triển khai, để khởi động lại máy chủ.

Tất nhiên đây là điều hấp dẫn đối với những người làm việc trong môi trường phát triển không chính thức, không có kiểm soát phiên bản, kiểm tra tự động, xây dựng tự động, v.v.

Thật ra nó rất dễ

Nghiêm túc. Ít nhất là cho người mới bắt đầu thực sự nó rất dễ dàng. Dễ dàng đến mức khi anh em họ của tôi bày tỏ sự quan tâm đến việc học cách lập trình, tôi đã mua cho anh ấy một cuốn sách Python để thay thế. Các quy ước của PHP có thể dạy cho bạn một số thói quen xấu.

Nó có khả năng

Tôi có một cuộc sống lâu dài, mối thù chung với các ngôn ngữ C / C ++. Bằng cách nào đó chúng ta không thích nhau. Khi còn ở trường đại học, khi tôi phải thực hiện các dự án liên quan đến tính toán, tôi sẽ chọn PHP thay vì C ++ và trong từng trường hợp tôi có thể đạt được những gì tôi dự định. Có thể việc thực thi chương trình trên thực tế chậm hơn so với việc nó được viết bằng C ++, nhưng nó không phải là một yếu tố trong trường hợp này.

Dù sao: mạng lưới thần kinh, thuật toán di truyền, logic mờ ... Tôi đã làm tất cả những điều này trên PHP. Phải ... mọi người đã nói với tôi rằng tôi thật kỳ lạ.


+1 cho giải thích và có khả năng. Một điều luôn làm tôi khó chịu khi thực hiện công việc web với Java là nhu cầu biên dịch lại và triển khai liên tục. Sử dụng một cái gì đó như Grails làm giảm bớt một số điều này, nhưng nó không tốt bằng PHP.
Josh K

Giải thích và có khả năng thực sự là một lý lẽ tốt. +1 Tất cả các câu trả lời đều tốt và đạt được một số lý lẽ tốt, nhưng câu trả lời của bạn khá tốt.
ôi

Chỉ cần nhìn vào mã này để xử lý các số nguyên 64 bit: mysqlperformanceblog.com/2007/03/27/NH Bạn có nghiêm túc gọi việc này dễ dàng không?
ThomasX

Không, tôi không có. Xin lưu ý tôi đã viết: 'Ít nhất là cho người mới bắt đầu thực sự, nó thực sự dễ dàng.' Những người mới bắt đầu thực sự thường không cần bận tâm đến tính di động giữa các nền tảng (nếu đó là một điều tốt - đó là một câu hỏi hoàn toàn khác). Lời khuyên chung: nếu bạn mong đợi để đối phó với các số nguyên lớn trong mở rộng sử dụng BCMath PHP (và vâng, tôi biết đây không phải là giải pháp tốt nhất có thể có ... nhưng đó là cách PHP là;))
Mchl

17

Đây là điều mà không phải ai cũng đồng ý nhưng tôi nghĩ rằng một lý do khác khiến PHP rất phổ biến là vì dễ dàng có được một tài khoản lưu trữ miễn phí.

Nhiều sinh viên trẻ muốn tham gia phát triển web chọn PHP vì thiết lập máy chủ trực tuyến sẽ không mất gì và vì vậy họ có thể chơi xung quanh với nó / tìm hiểu miễn phí.

Mặc dù có các tùy chọn lưu trữ miễn phí cho các ngôn ngữ khác (java, ruby, .net), nhưng chúng khó hơn nhiều.


Chi phí chắc chắn là một yếu tố chính trong việc sử dụng rộng rãi.
Orble

14

Tạo khuôn

PHP có khuôn mẫu được tích hợp sẵn, không có các thẻ lạ, phân tích cú pháp hoặc chi phí chung. Một số như thế này, một số thì không.

Di động

PHP có thể được chạy cho hầu hết mọi máy chủ và hầu hết các nền tảng. Trong thực tế nó được chạy trên hầu hết các máy chủ. Bạn có thể chạy nó dưới IIS, Apache, Nginx, v.v. Điều này có nghĩa là bạn đã viết một lần - chạy bất cứ nơi nào có tính di động. Tính di động này đi kèm với một số hạn chế, tùy thuộc vào cài đặt môi trường bạn phải hỗ trợ. Điều này sẽ khác nhau giữa các ứng dụng thương mại và các ứng dụng nguồn mở / phổ biến rộng rãi.

Phổ biến

PHP có một cộng đồng lớn và nó vẫn đang phát triển. Cộng đồng này là kết quả của sự phổ biến lớn của PHP. Bạn có danh sách gửi thư rất tích cực, diễn đàn thảo luận và một số lượng lớn người có thể trả lời câu hỏi khi phát triển.

Giá cả

Bản thân PHP là miễn phí và phần lớn các mục mà nó hoạt động vượt trội (Apache, PostgreQuery, MySQL) là miễn phí. Điều này mang lại cho dự án của bạn một ngưỡng chi phí ban đầu rất thấp.


Tôi thực sự không nói rằng tính di động là một điểm mạnh của PHP. Nếu bạn thực sự muốn viết PHP di động, bạn phải giải quyết một thực tế là ngôn ngữ có thể được cấu hình theo nhiều cách khác nhau, ví dụ: bạn phải kiểm tra tùy chọn cấu hình cho các trích dẫn ma thuật và chạy stripslashes()vì một số có tùy chọn cấu hình và một số don 't.
Jim

2
@Jim - Đó là nhiều di động hơn hầu hết mọi thứ.
Orble

@ Tổ chức - Thật sao? Những tính năng tương tự của các ngôn ngữ khác mà bạn đang nghĩ đến?
Jim

1
@Jim: Tôi viết mã mong đợi một môi trường "thực hành tốt nhất". Nếu tôi đang thực hiện một dự án hệ điều hành, tôi sẽ bắt buộc một số tùy chọn / cài đặt (ví dụ: magic_quotes_gpcđã tắt ). Cách tốt nhất để giải quyết vấn đề này (nếu bạn phải làm) là gói gọn các khối xử lý if / other này thành các hàm trợ giúp để loại bỏ yêu cầu kiểm tra dấu ngoặc kép với mã ứng dụng của bạn.
Josh K

1
@Josh - Tôi sẽ làm giống như bạn nếu tôi vẫn viết PHP với số lượng lớn trong những ngày này, nhưng nếu mã của bạn phụ thuộc vào môi trường "thực tiễn tốt nhất", thì nó không khả dụng. Cụ thể, nó sẽ có lỗi tham nhũng dữ liệu trên nhiều máy chủ xảo quyệt khi dấu gạch chéo ngược được thêm vào tất cả dữ liệu do người dùng cung cấp. Cho rằng tính phổ biến của lưu trữ PHP được coi là một trong những lợi thế chính của việc sử dụng PHP, tôi nghĩ rằng thật công bằng khi xem xét tất cả các máy chủ lưu trữ nhảm nhí đó. Các hàm trợ giúp mà bạn mô tả là cách xử lý điển hình, nhưng đó là cách giải quyết cho một vấn đề về tính di động.
Jim

5

PHP ở khắp mọi nơi. Cho dù bạn có loại webhost kỳ lạ nào đi chăng nữa, rất khó có khả năng không cài đặt PHP trên nó. Điều này có nghĩa là nếu bạn đang viết một ứng dụng web phải chạy trên máy chủ của người khác, bạn luôn có thể phụ thuộc vào một số bộ tính năng PHP (các lớp PHP 4/5 và các tiện ích mở rộng mặc định) và tăng cơ sở người dùng trong khi giảm hỗ trợ.


5

Tính khả dụng Hầu như mọi webhost đều hỗ trợ nó

Tốc độ phát triển Tất cả những gì bạn cần là một trình soạn thảo văn bản, không cần biên dịch

Dễ dàng cài đặt Ngay cả khi không được cài đặt, nó vẫn dễ cài đặt, thậm chí được đóng gói sẵn với các máy chủ LAMP / WAMP

Tài liệu Có hàng tấn ví dụ, nhóm hỗ trợ, sách, v.v.


1

Một số ưu điểm của PHP:

  • Xử lý tải lên tập tin tích hợp
  • Xử lý dữ liệu tích hợp từ GET, POST và COOKIES
  • Quản lý phiên tích hợp
  • Viết nhanh
  • Dễ dàng trộn mã và HTML (lưu ý: đây cũng được coi là nhược điểm)

Bây giờ, nó cũng có một số nhược điểm rõ ràng:

  • Không có khái niệm về biến cục bộ ... biến là phạm vi toàn cục hoặc hàm. Điều này sẽ đốt cháy bạn tại một số điểm, đặc biệt nếu bạn đang sử dụng các vòng lặp.
  • Biến toàn cục không có sẵn trong phạm vi chức năng trừ khi bạn yêu cầu cụ thể với globaltừ khóa.
  • Môi trường lập trình thay đổi dựa trên php.ini. Điều này bao gồm các thay đổi về hành vi của các chức năng cụ thể và các mảng tích hợp (ví dụ: $_GET$_POSTcác thay đổi giá trị dựa trên magic_quotes_gpccài đặt)

1
Không ai trong tâm trí bên phải của họ sẽ tiếp tục magic_quotes_gpcbật. Tôi đặt câu hỏi về sự tỉnh táo của người đã thêm sự phình to vô giá trị đó vào động cơ ngay từ đầu.
Josh K

1
"Biến toàn cầu không có sẵn trong phạm vi chức năng trừ khi bạn yêu cầu cụ thể" - không thực sự thấy đó là một bất lợi như thế nào. Có những ngôn ngữ làm theo cách này, có những ngôn ngữ khác thì không.
Mchl

1
@Mchl: Hầu hết các ngôn ngữ không làm điều này và đó là một vấn đề rõ ràng nếu bạn không biết về nó. Ngoài đỉnh đầu, TCL là ngôn ngữ khác duy nhất tôi đã sử dụng để thực hiện điều này.
Powerlord

1
@Josh K: Máy chủ chính của công ty trước đây của tôi vẫn có nó, với tư cách là lập trình viên trưởng trước tôi thích nó, và như vậy hầu hết các mã PHP cũ kế thừa trôi nổi dựa vào nó. Không có thời gian để mã hóa lại hàng trăm trang web. : - /
Orble

1
@Mchl: Ada có xu hướng được sử dụng khi thất bại sẽ dẫn đến cái chết, rất nhiều cái chết. adoms.org/ nhược điểm / dự án
Orbled

1

Tôi nghĩ rằng một số người không thích PHP vì bạn có thể sử dụng nó theo cách bạn thích / thấy phù hợp. Bởi vì mọi người đều có thể sử dụng nó rất dễ dàng, rất nhiều mã tào lao trên thế giới. Một số lập trình viên chưa bao giờ thực hiện bất kỳ PHP thực sự nào ở đó có thể nghĩ rằng đó là cách bạn làm việc với PHP. Và một số người không thích PHP vì họ thích một cái gì đó khác và sợ những thứ mới hoặc như vậy.

Cá nhân tôi thích PHP vì tôi có thể chạy nó ở hầu hết mọi nơi. Bạn có thể nhận được rất nhiều sự giúp đỡ trên web và nó miễn phí. Ngoài ra có một số khung tốt như Khung Zend. Nhưng hầu hết mọi người không thể đến đó xung quanh nó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.