PHP – ngôn ngữ lập trình có tuổi đời trên 20 năm, một ngôn ngữ đã rất phổ biến với đại đa số lập trình viên. Theo số liệu thống kê của w3 thì PHP là ngôn ngữ lập trình web phổ biến nhất hiện nay. PHP được sử dụng trong gần 80% lượng website trên thế giới.
Các phiên bản PHP chủ yếu hiện tại là PHP 5.x và 7.x, cũng đương nhiên thôi vì PHP 8 còn chưa ra mắt mà.
Vậy trong bài viết ngày hôm nay cùng Code Từ Tâm tìm hiểu qua những sự thay đổi cơ bản trong các phiên bản code PHP gần đây nhất của PHP nhé.
Chúng ta hãy xem PHP đã có những sự chuyển mình như thế nào.
Những thay đổi này chỉ là 1 số thay đổi tiêu biểu trong các bản PHP mà CodeTuTam note lại. Các thay đổi này không đại diện hoàn toàn cho toàn bộ sự thay đổi của phiên bản đó.
Từ thủa hồng khai, PHP ra đời năm 1994 bởi Rasmus Lerdof và chính thức ra mắt vào 1995. Tuy vậy vào thời kì đầu này mọi thứ đều rất sơ khai. PHP ban đầu được xem như tập con đơn giản các mã kịch bản Perl mà thôi. Và đương nhiên như 1 số ngôn ngữ khác, PHP được xây dựng trên nền ngôn ngữ C.
Cùng với việc tái cấu trúc lại mã nguồn, cũng như huy động được đội ngũ đông đảo tham gia phát triển. PHP 3.0 cho phép người dùng cuối nhiều kha rnawng kết nối và tùy chỉnh, hứa hẹn đây là ngôn ngữ phát triển mạnh mẽ trong tương lại.
Đã có lúc thời điểm này PHP 3.0 được cài đặt cho xấp xỉ 10% số máy chủ web có trên mạng Internet.
Mặc dù PHP 4.0 cũng tạo ra những bước thay đổi đột phát về hiệu năng xử lý, tuy vậy phải đến với phiên bản PHP 5.0 trở đi, PHP thực sự được lột xác với nhiều phần mở rộng và hỗ trợ tốt hơn hết. Chúng ta sẽ cùng đi sâu vào từng phiên bản ngay sau đây.
PHP càng được sử dụng rộng dãi, những yếu kém của nó trong việc lập trình hướng dối tượng càng hiện rõ hơn cả. Điều này chính là 1 tiền đề để ra mắt PHP 5.0 – phiên bản chính thức hỗ trợ cho lập trình hướng đối tượng OOP và hàng loạt các phần mở rộng khác. Và chỉ từ sau PHP 5.1 trở đi PHP mới bắt đầu đi vào quỹ đạo của sự ổn định và phát triển mạnh mẽ
Cũng chính vì lẽ đó mà PHP còn được đánh giá là ngôn ngữ lập trình của năm 2004 theo đánh giá của website Tiobe
Tham khảo thêm ở đây : https://www.tiobe.com/tiobe-index/
Còn nhớ rằng các phiên bản PHP trước đây, khi mà chưa hỗ trợ namepace thì tên class dài cứ gọi là miên man. Ví dụ cho kiểu: University_Economic_YearThree_Student. Và phiên bản PHP 5.3 chính thức ra mắt với việc hỗ trợ namespace.
Tuy vậy Namespace thời này cũng còn khá là “khó ưa nhìn”
Ví dụ
namespace University::Economic::YearThree; class Student{ }
Chắc hẳn các bạn đã quá quen với cú pháp ?:, tuy vậy chỉ đến PHP 5.3 cú pháp này mới được giới thiệu.
Cú pháp này thương đương với 1 câu lệnh if else
If($a>$b){ $result = $a; } else{ $result = $b; }
Hay được viết là :
$result = $a>$b?$a:$b;
Tham khảo thêm tại Goto của PHP.net
Lệnh Goto cho phép mã lệnh thực thi sẽ nhảy đến 1 vị trí định sẵn từ trước. Tuy nhiên theo góc độ của mình việc này hạn chế sử dụng. Điều này có thể tạo ra những đoạn mã dư thừa hoặc rất khó bảo trì vận hành về sau.
Anonymous functions rất hay trong các việc khai báo hàm mà hàm chức năng đó chỉ sử dụng 1 lần. việc này khá thuận thiện cho sử dụng và không tạo ra những code dư thừa sau này
$example = function (){ echo “Hello World”; } $example();
Ra đời vào năm 2015 cùng với sự nỗ lực giúp mã nguồn PHP gọn gàng hơn trong cách sử dụng, PHP 5.4 mang tới những thay đổi khá tích cực.
Từ 5.4 chúng ta có thể khai báo array trong PHP với 2 cách sau
$arr = [1,3,4,5,6];
Hoặc
$arr = array(1,2,3,4,5,6,7);
Trait là cơ chế hỗ trợ tái sử dụng lại đoạn mã (có sử dụng lại nhiều class khác nhau) mà không phải kế thừa. Việc này cũng giảm thiểu gánh nặng cho cơ chế đơn kế thừa của PHP
<?php trait Hello{ public function say(){ echo “Say Hello”; } } class A{ use Hello; } $a = new A; $a->say();
Viêc đưa vào sử dụng khôi Finally thì đoạn mã code php sẽ tối ưu hơn, cũng nhưng không bị lặp code
Kể từ PHP 5.5 namespace sẽ được sử dụng dưới dạng
University\Student //thay vì University::Student
PHP cung cấp phương thức truy cập vào các biến trong mảng mà không cần thiết phải lưu trữ toàn bộ dữ liệu đó trong không gian bộ nhớ
Tuy nhiên nếu sử dụng Generators cho phép chúng ta lợi về không gian bộ nhớ thì việc này cũng sẽ tiêu tốn thời gian xử lý hơn so với việc dùng vòng for thông thường.
<?php function getRange ($max = 10) { for ($i = 1; $i < $max; $i++) { yield $i; } } foreach (getRange(PHP_INT_MAX) as $range) { echo "Dataset {$range} <br>"; }
Phiên bản PHP 5.6 luôn được coi là 1 phiên bản PHP ổn định và cho đến thời điểm hiện tại PHP 5.6 vẫn được rất nhiều website trên thế giới sử dụng.
Dưới đây là 1 trong những thay đổi rất hữu ích của PHP 5.6 so với các phiên bản trước đó.
Đối với phiên bản trước 5.6 bạn có thể khai báo
const A = 10; const B = 20;
Nhưng Từ PHP 5.6 có thể khai báo như sau mà gặp bất kì lỗi lầm gì
const B = A*2;
Trước giờ việc nạp chồng hàm trong PHP thì không có 1 khái niệm chính thức. Để thực hiện việc này bạn có thể thực hiện thông qua Magic Function (__call và __callStatic) hoặc func_get_args() tuy vậy với việc hỗ trợ Biến thể Function (hàm 3 dấu chấm) với toán tử dấu 3 chấm.
Toán tử này cũng là 1 sự lựa chọn thay thế cho func_get_args() theo gợi ý của php.net
<?php function f($req, $opt = null, ...$params) { printf('$req: %d; $opt: %d; number of params: %d'."\n", $req, $opt, count($params)); } f(1); f(1, 2); f(1, 2, 3); f(1, 2, 3, 4); f(1, 2, 3, 4, 5);
Toán tử … cũng được sử dụng như là Argument unpacking
<?php function add($a, $b, $c) { return $a + $b + $c; } $operators = [2, 3]; echo add(1, ...$operators);
Toán tử lũy thừa
Các phiên bản trước PHP 5.6 thì chúng ta phải sử dụng
Trước đây để tính lũy thừa :
$a = pow(10,2);
Nhưng từ PHP 5.6 trở về sau chúng ta có thể làm như dưới đây
<?php printf("2 ** 3 == %d\n", 2 ** 3); printf("2 ** 3 ** 2 == %d\n", 2 ** 3 ** 2); $a = 2; $a **= 3; printf("a == %d\n", $a);
Và kết quả là:
2 ** 3 == 8 2 ** 3 ** 2 == 512 a == 8
Ngoài ra còn nhiều nâng cấp khác trong phiên bản PHP 5.6 mà CodeTuTam không note trong bài này, các bạn có thể tham khảo thêm tại: https://www.php.net/manual/en/migration56.new-features.php
Trong phần tiếp theo chúng ta sẽ tiếp tục tìm hiểu những cải tiến mới của version PHP 7, một sự thay đổi có thể gọi là lột xác của PHP, giúp hiệu năng cũng như tốc độ xử lý nhanh lên đáng kể. Một cách khác đây cũng là một trong những Big change lớn của PHP trước khi ra mắt PHP 8 vào năm 2021.
Bình luận: