2011-01-14 40 views
8

Tôi bắt đầu học PHP. Tôi muốn sử dụng PHP 5.3 vì nó là phiên bản mới nhất cho đến nay. Tôi đang làm việc trên một dự án mà trong đó tôi sẽ sử dụng PHP 5.2 script mà ai đó đã cho tôi.PHP 5.3 có tương thích ngược với PHP 5.2 không?

Chúng sẽ chạy tốt ngay cả khi tôi đang sử dụng PHP 5.3?

+8

http://www.php.net/manual/en/migration53.php nên có tất cả các điều cần biết. –

Trả lời

10

PHP.net tính năng guide để nâng cấp từ PHP 5.2.x lên PHP 5.3. Điều này bao gồm một phần trên backwards compatibility.

Từ kinh nghiệm của tôi, quá trình chuyển đổi từ 5,2 đến 5,3 diễn ra khá suôn sẻ. Vấn đề duy nhất tôi gặp phải với ứng dụng của mình là đảm bảo cài đặt DateTime của tôi là thuộc tính được định cấu hình trong php.ini của tôi và lọc ra một số cảnh báo ngừng sử dụng quá mức để bắt đầu hiển thị.

+1

+1. Thực sự chuyển đổi suôn sẻ cho tôi là tốt. Một vấn đề tôi gặp phải được mô tả ở đây: http://stackoverflow.com/questions/4673472/php-5-3-and-assigning-the-return-value-of-new-by-reference – mfonda

2

Hầu hết các phiên bản nhỏ sẽ không gây ra sự cố cho bạn. Bạn sẽ ổn thôi.

Rõ ràng, nếu bạn gặp bất kỳ sự cố nào, bạn sẽ muốn đảm bảo rằng bạn đã đặt error_reporting để xem tất cả các lỗi. PHP: error_reporting

Ngoài ra, kiểm tra hướng dẫn cho những thay đổi trong 5.3 từ 5.2: Migrating from PHP 5.2.x to PHP 5.3.x

5

Không, 5.3 không tương thích ngược, và bởi tất cả có nghĩa là nó không nên được xem như một phiên bản nâng cấp nhỏ. Có một trang dành riêng cho các thay đổi không tương thích: http://www.php.net/manual/en/migration53.incompatible.php Cũng xem xét các chức năng bạn đã thiết kế nhưng đã được chấp nhận vào 5.3. Vì php không hỗ trợ quá tải hoặc ghi đè các hàm, điều này sẽ gây ra lỗi.

+0

"xem xét các chức năng bạn có được thiết kế nhưng đã được chấp nhận vào 5.3 "wow, thats một điều hiếm hoi/ngẫu nhiên để chỉ ra: D nhưng tại sao -1? – Hannes

+1

Đối với lý do tại sao tôi chỉ ra: Tôi đã chạy qua nó trên nhiều hơn một lần cố gắng để chạy các ứng dụng cũ với 5.3. Chúng tôi đã có các chức năng xác định rằng bây giờ các chức năng php-lib (tôi nghĩ 'date_add' nằm trong số đó), và nó thực sự bị phá vỡ. Và việc tìm kiếm và thay thế toàn cầu chắc chắn sẽ tốn nhiều công sức hơn bạn mong đợi từ bản cập nhật phiên bản nhỏ. Đối với lý do tại sao -1, tôi cũng tò mò. – Inca

2

Có một số vấn đề nhỏ. Thời gian cuộc gọi vượt qua tham chiếu không được chấp nhận. Có các từ dành riêng mới (ví dụ: goto).

0

php không có khả năng tương thích ngược trong tất cả các phiên bản. Nó thường loại bỏ một số chức năng khi nó thay đổi phiên bản. Vấn đề xảy ra khi bạn phải nâng cấp máy chủ và cần phải thay đổi phiên bản php nhưng một số script php không còn làm việc với phiên bản php mới. Bạn cũng phải sửa kịch bản lệnh php là một công việc lớn hơn. Nhưng nếu tập lệnh thuộc về người dùng khác chứ không phải của bạn, bạn không thể nâng cấp các tập lệnh đó. Đây là một tình huống đau đầu thực sự mà tôi chán ngấy với php và chuyển sang perl thay vì lý do tương thích ngược.

Các vấn đề liên quan