Skip to content

PHP 8.2: null, false, and true as stand-alone types

PHP 8.2 introduces a new feature that allows null, false, and true to be treated as stand-alone types. This means that these values can now be used as the types for function arguments and return values, rather than just being reserved for use as boolean values.

To use this feature, you can simply declare a function argument or return type as “null”, “false”, or “true”. For example:

function example(null $value) : false {
  return $value === null ? false : true;
}

In this example, the function example takes a single argument of type null and returns a value of type false. If the value of $value is null, the function returns false, otherwise it returns true.

One potential use case for this feature is to provide more explicit type hints for functions that are intended to work with these special values. For example, consider the following function:

function getErrorStatus(int $code) : ?string {
  if ($code === 404) {
    return null;
  } else {
    return 'Unknown error';
  }
}

In this example, the function getErrorStatus takes an integer $code and returns a string or null, depending on the value of $code. Prior to PHP 8.2, the return type of this function would have to be declared as ?string, which can be somewhat ambiguous. With the new stand-alone types feature, we can be more explicit and declare the return type as null, like so:

function getErrorStatus(int $code) : null {
  if ($code === 404) {
    return null;
  } else {
    return 'Unknown error';
  }
}

This makes it clear to anyone reading the code that the function is intended to return a value of type null in certain circumstances.

Another potential use case is for functions that are intended to return only true or false. For example:

function isValidEmail(string $email) : true {
  return filter_var($email, FILTER_VALIDATE_EMAIL) !== false;
}

In this example, the function isValidEmail takes a string $email and returns a value of type true if the string is a valid email address, or false otherwise. With the stand-alone types feature, we can declare the return type as true, which makes it clear that the function is intended to return only true or false.

Overall, the stand-alone types feature in PHP 8.2 provides a useful new way to specify the types of function arguments and return values, especially when working with special values like null, true, and false. It can help make your code more explicit and easier to understand for other developers.

Published inDevelopmentPHP

Be First to Comment

    Leave a Reply

    Your email address will not be published. Required fields are marked *