Cấp bậc tác giả:

PHP

10 cải tiến trong PHP 5.5.0 dành cho tín đồ PHP

Được viết bởi Tình Ngô ngày 24/06/2013 lúc 10:07 AM
Tin vui cho những tín đồ PHP rằng PHP 5.5.0 chính thức được phát hành, nó mang tới một loạt các tính năng mới cũng như cải thiện một số kỹ thuật. 10 cải tiến mà các nhà phát triển web quan tâm sẽ tìm thấy ở phiên bản mới này.
  • 0
  • 9828

10 cải tiến trong PHP 5.5.0 dành cho tín đồ PHP

Tin vui cho những tín đồ PHP rằng PHP 5.5.0 chính thức được phát hành, nó mang tới một loạt các tính năng mới cũng như cải thiện một số kỹ thuật. 10 cải tiến mà các nhà phát triển web quan tâm sẽ tìm thấy ở phiên bản mới này.

Một sự khác biệt cần lưu ý trước khi nâng cấp phiên bản, đó là windows XP và 2003 sẽ không hỗ trợ PHP 5.5.0

#1 Sinh mã tự động có sẵn

Bộ sinh mã cung cấp cách đơn giản nhất tránh lặp lại dữ liệu mà không cần phải viết lớp thực thi giao diện

Giống như bất kỳ chức năng khác của sinh mã được định nghĩa với từ khóa chức năng, không giống như chức năng bình thường, nó chỉ trả về kết quả một lần, sinh mã có thể gửi nhiều kết quả trả về, bằng cách sử dụng từ khóa yield.

Ví dụ đơn giản sử dụng chức năng sinh mã chuỗi số nguyên như bên dưới:

function xrange($start, $end, $step = 1) {
for ($i = $start; $i <= $end; $i += $step) {
yield $i; } }
igit odd numbers: ';
echo 'Single
dforeach (xrange(1, 9, 2) as $number) {
echo "$number ";
}
ho "\n";
e
c

Kết quả sẽ in ra là "Single digit odd numbers: 1,3,5,7,9"

Sinh mã cho phép lặp lại dữ liệu khi sử dụng vòng lặp foreach không cần xây dựng mảng bên trong bộ nhớ. Không cần phải
tạo ra mảng giúp giảm sử dụng bộ nhớ và thời gian xử lý.

Ví dụ, sử dụng chức năng range() của sinh mã để tạo ra chuỗi liên tục giữa 1 và 1 tỷ bằng cách gọi range(0,1000000) bên trong vòng lặp foreach sẽ tạo ra mảng với kích thước hơn 100MB, theo hướng dẫn của PHP. Trong khi đó tạo ra 1 chuỗi sử dụng chức năng sinh mã sẽ không đến 1KB.

#2 Thêm từ khóa Finally

Thêm từ khóa "finally" là cách PHP lọc bớt các xử lý ngoại lệ.

Giống như các ngôn ngữ bật cao khác, PHP cho phép bọc đoạn code trong khối try{} catch{}. Bất kỳ ngoại lệ nào xảy ra sẽ được bắt để xử lý

Từ khóa finally cho phép xác định đoạn mã, đặt phía sau khối catch, nó sẽ luôn luôn thực thi sau khối try{} catch{}, bất kể ngoại lệ nào xảy ra.

Ví dụ:

function inverse($x) {
if (!$x) {
throw new Exception('Division by zero.');
}
return 1/$x;

}
try {
echo inverse(5) . "\n";
} catch (Exception $e) {
echo 'Caught exception: ', $e->getMessage(), "\n";
} finally {
echo "First finally.\n";
}

#3 New Password hashing API

New Password hasing API cho phép sử dụng dòng mã để tạo ra mật khẩu bằng mã băm sử dụng bcrype. Ví dụ

$hash = password_hash($password, PASSWORD_DEFAULT);

password_hash() cần 2 đối số ở đây, đầu tiên mật khẩu là kiểu chuỗi và sau đó là hằng số thiết lập thuật toán mã hóa để sử dụng.

Password sẽ tự động nhúng và có thể xác nhận bằng cách sử dụng đoạn mã dưới đây

password_verify($password, $hash)

Thuật toán mã hóa mặc định được sử dụng là bcrypt, sẽ thay đổi và lưu trữ thuật toán mới vào PHP

Khuyến khích nên lưu trữ kết quả vào trong cơ sở dữ liệu nếu kết quả quá 60 ký tự

#4 Mảng và chuỗi chữ

Cả mảng và chuỗi chữ có thể truy cập vào vùng nhớ mà con trỏ trỏ tới trực tiếp tới phần tử và ký tự

Ví dụ:

echo 'Array dereferencing:';
echo [4,5,6][0];
"\n";
echo

Chọn phần tử đầu tiên trong mảng in ra "array dereferencing: 4"

echo 'String dereferencing:';
echo 'HELLO'[0];
"\n";
echo

Chọn phần tử đầu tiên trong chuỗi in ra "String dereferencing: H"

#5 Giải pháp đơn giản cho tên lớp

Từ khóa Class bây giờ có thể được sử dụng để lấy tên đầy đủ của class bao gồm namespace nằm bên trong

Ví dụ:

namespace NS {
class ClassName {
}
ho ClassName::class;
e
c

}

Sẽ in ra tên của class và namespace, kết quả là: "NS\ClassName"

#6 Truy cập biểu thức hàm Empty()

Hàm Empty(), được sử dụng để xác định biến có rỗng hay không hoặc là có giá trị false không, bây giờ có thể thông qua một biểu thức và xác định giá trị trả về có rỗng hay không.

Ví dụ

function send_false() {
return false;
}
if (empty(send_false())) {
echo "False value returned.\n";
}
if (empty(true)) {
echo "True.\n";
}

Kết quả: "False value returned"

#7 Hỗ trợ tối ưu hóa Zend và thêm bộ nhớ đệm

Tối ưu hóa Zend và bộ nhớ đệm đã được thêm vào PHP như OPcache mở rộng.

OPcache cải thiện hiệu suất của các scripts bằng cách loại bỏ cần thiết để PHP load và phân tích cú pháp scripts mỗi khi yêu cầu được thực hiện. 
Để làm được điều này, nó lưu trữ script bytecode trong bộ nhớ dùng chung

#8 Vòng lặp Foreach hỗ trợ construct list()

Giá trị bên trong mảng lồng nhau có thể chỉ định đến biến bằng cách sử dụng vòng lặp foreach() và construct list()

List() có thể sử dụng dễ dàng chỉ định giá trị thực hiện từ bên trong mảng, giống như:

$animals = array('dog', 'fox');
// Listing all the variables
list($animal1, $animal2) = $animals;
echo "The quick $animal1 jumped over the lazy $animal2\n";

Kết quả: "The quick fox jumped over the lazy dog"

Hàm list() sử dụng vòng lặp để chỉ định giá trị bên trong mảng lồng nhau, ví dụ:

$array = [
[10, 20],
[30, 40],
];
foreach ($array as list($a, $b)) {
echo "First: $a; Second: $b\n";
}

Kết quả:
First: 10, Second: 20
First: 30, Second: 40

#9 Cải tiến mới được thêm vào thư viện GD

GD mở rộng của PHP tạo và thao tác nhiều hình ảnh có nhiều khả năng mới.
Hỗ trợ lật bằng cách sử dụng chức năng imageflip(), hỗ trợ cắt tiên tiến bằng cách sử dụng chức năng imagecrop() và imagecroupauto(), WebP đọc và viết hỗ trợ dùng hàm imagecreatefromwebp() và imagewebp().

#10 Vòng lặp foreach hỗ trợ khóa không vô hướng

Khi lặp đi lặp lại mảng sử dụng vòng lặp foreach, các khóa element có thể có giá trị không vô hướng, đó là giá trị khác so với kiểu int hoặc string.

Nguồn bài viết: DOTNET.VN

BÌNH LUẬN BÀI VIẾT

Bài viết mới nhất

LIKE BOX

Bài viết được xem nhiều nhất

HỌC HTML