Sắp tới phiên bản PHP 8.3 sẽ được phát hành vào ngày 23/11/2023. PHP 8.3 sẽ có cải tiến về readonly classes, hàm json_validate() mới, bổ sung thêm cho Randomizer class được thêm mới gần đây và nhiều tính năng khác.
Trong bài đăng này, chúng ta sẽ lần lượt xem xét tất cả các tính năng, cải tiến hiệu suất, các thay đổi và tìm ra ưu điểm và nhược điểm khi nâng cấp php 8.3
Ưu Điểm của PHP 8.3 :
- Tính năng đọc ghi readonly properties, tạo readonly anonymous classes, truy cập dynamic class constants đơn giản hơn và tiện lợi hơn.
Để hiểu rõ hơn, dưới đây là ví dụ về việc sử dụng Readonly trong PHP 8.3:
// Truy cập readonly properties
class MyClass {
public readonly string $foo = 'bar';
}
$object = new MyClass;
echo $object->foo; // 'bar'
// Tạo readonly anonymous classes
$class = new readonly class {
public function __construct(
public string $foo = 'bar',
) {}
};
$object = new $class;
echo $object->foo; // 'bar'
// Truy cập dynamic class constants
class Foo
{
const BAR = 'bar';
}
$name = 'BAR';
echo Foo::{$name}; // 'bar'
- Tính năng json_validate() giúp validate JSON input một cách hiệu quả và tiết kiệm bộ nhớ hơn.
//Ví dụ:
$json = '{"foo": "bar"}';
if (json_validate($json)) {
$decoded = json_decode($json, true);
// làm gì đó với dữ liệu được giải mã
}
- Tính năng thêm mới cho Randomizer class, giúp tạo ra chuỗi byte ngẫu nhiên từ một chuỗi đã cho, tạo số ngẫu nhiên trong một khoảng cụ thể, và tạo số ngẫu nhiên trong khoảng 0 đến 1
//Ví dụ:
use JetBrains\PhpStorm\Pure;
use Randomizer;
use Randomizer\Boundary\IntervalBoundary;
// Tạo chuỗi byte ngẫu nhiên từ chuỗi đã cho
$string = 'abcdefghijklmnopqrstuvwxyz';
$length = 10;
$randomBytes = Randomizer::getBytesFromString($string, $length);
// Tạo số ngẫu nhiên trong khoảng cụ thể
$min = 5.0;
$max = 10.0;
$interval = IntervalBoundary::ClosedOpen;
$randomFloat = Randomizer::getFloat($min, $max, $interval);
// Tạo số ngẫu nhiên trong khoảng 0 đến 1
$randomFloat = Randomizer::nextFloat();
Nhược điểm của PHP 8.3 :
- Sự khác biệt lớn với các phiên bản trước đó khiến cho việc nâng cấp có thể gây ra lỗi không mong muốn.
- Các tính năng mới có thể không được hỗ trợ trên một số môi trường cũ, dẫn đến việc không thể sử dụng hoặc phải viết thêm mã để xử lý.
//Ví dụ
// Sử dụng union types trên PHP 8.3
function calculate(int|float $num1, int|float $num2): int|float {
return $num1 + $num2;
}
// Sử dụng type hinting trên PHP 7.x hoặc thấp hơn
function calculate($num1, $num2) {
if (!is_numeric($num1) || !is_numeric($num2)) {
throw new InvalidArgumentException('Invalid argument type.');
}
return $num1 + $num2;
}
Tóm lại, PHP 8.3 mang đến nhiều tính năng mới và cải tiến, tuy nhiên cũng có thể gây ra một số vấn đề trong quá trình nâng cấp và sử dụng.
Mọi thắc mắc về php 8.3 cũng như nâng cấp php 8.3 quý khách có thể liên hệ với Tadu qua:
– Tổng đài 24/7: 1800 6980 nhánh 2
– Email: kythuat@tadu.vn
Quý khách muốn tìm hiểu về các dịch vụ của Tadu cung cấp có thể truy cập –> https://tadu.cloud