PHP 8.3: Release Date and New Features

    In this article, we will see PHP 8.3 release date and upcoming new features. PHP is a popular general-purpose scripting language that is especially suited to web development. Fast, flexible and pragmatic, PHP powers everything from your blog to the most popular websites in the world.

    PHP 8 is released on November 26, 2022, and PHP 8.2 is released on December 08, 2022. PHP 8.2 is a major update of the PHP language. In this many new features include and deprecated functions and properties.

    Now, we will see PHP 8.3 release date, and PHP 8.3 new features.

    For instance, this page lists all the accepted RFCs for PHP 8.3.

    PHP 8.3 New Features and Release Date

Table of contents

  • When will PHP 8.3 be released?
  • PHP 8.3 changes and new features
    • json_validate()
    • Improved unserialize() error handling
When will PHP 8.3 be released?

    As per the PHP 8.3 preparation chartPHP 8.3 will be released on November 23, 2023.

Date Release
Jun 08 2023 Alpha 1
Jun 22 2023 Alpha 2
Jul 06 2023 Alpha 3
Jul 18 2023 Feature freeze
Jul 20 2023 Beta 1
Aug 03 2023 Beta 2
Aug 17 2023 Beta 3
Aug 31 2023 RC 1
Sep 14 2023 RC 2
Sep 28 2023 RC 3
Oct 12 2023 RC 4
Oct 26 2023 RC 5
Nov 09 2023 RC 6
Nov 23 2023 GA
PHP 8.3 changes and new features

    json_validate()

    This RFC introduces a new function called json_validate() to validate if a string contains a valid JSON.

    Instead of using json_decode() function to validate a JSON string. Now, you can use json_validate(). According to its RFC. 

    Returns true if the string passed contains a valid JSON, otherwise returns false.

json_validate('{ "foo": "bar", }');
 
// Syntax error
echo json_last_error_msg();

    Read More: PHP RFC: json_validate

Improved unserialize() error handling

    PHP's current error reporting in unserialize() is very inconsistent, making it hard to reliably handle errors that occur during unserialization. In PHP 8.3 new \UnserializationFailedException will be added. Also, improve error handling.

    Let's see an example:

try {
    set_error_handler(static function ($severity, $message, $file, $line) {
        throw new \ErrorException($message, 0, $severity, $file, $line);
    });
    $result = unserialize($serialized);
} catch (\Throwable $e) {
    // Unserialization failed. Catch block optional if the error should not be handled.
} finally {
    restore_error_handler();
}

    In PHP 8.3, the error are handled is like the below code example.

try {
    $result = unserialize($serialized);
    var_dump($result); // Do something with the $result. Can appear in the 'try' right
                       // beside the unserialize(), because the 'catch' block is specific
                       // to unserialization and will not catch anything unrelated.
} catch (\UnserializationFailureException $e) {
    // unserialization failed.
}

    Read More: PHP RFC: Improve unserialize() error handling

    You might also like:

Bình luận
Vui lòng đăng nhập để bình luận
Một số bài viết liên quan