# The Deprecated attribute

(PHP 8 >= 8.4.0)

## Introduction

This attribute is used to mark functionality as deprecated. Using deprecated functionality will cause an `E_USER_DEPRECATED` error to be emitted.

## Class synopsis

#[\Attribute]
final class Deprecated {
/* Properties */
public readonly ?string $message;
public readonly ?string $since;
/* Methods */
public __construct(?string `$message` = `null`, ?string `$since` = `null`)
}

## Properties

message

  An optional message explaining the reason for the deprecation and possible replacement functionality. Will be included in the emitted deprecation message.

since

  An optional string indicating since when the functionality is deprecated. The contents are not validated by PHP and may contain a version number, a date or any other value that is considered appropriate. Will be included in the emitted deprecation message.

  Functionality that is part of PHP will use Major.Minor as the since value, for example `'8.4'`.

## Examples

`<?php
#[\Deprecated(message: "use safe_replacement() instead", since: "1.5")]
function unsafe_function()
{
echo "This is unsafe", PHP_EOL;
}
unsafe_function();
?>`

Output of the above example in PHP 8.4 is similar to:

    Deprecated: Function unsafe_function() is deprecated since 1.5, use safe_replacement() instead in example.php on line 9
    This is unsafe

## See Also

- Attributes overview
- ReflectionFunctionAbstract::isDeprecated()
- ReflectionClassConstant::isDeprecated()
- `E_USER_DEPRECATED`

## Table of Contents

- Deprecated::__construct — Construct a new Deprecated attribute instance

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open