Deprecated Features
PHP Core
Implicitly nullable parameter
    A parameter's type is implicitly widened to accept null
    if the default value for it is null.
   
The following code:
<?php
function foo(T1 $a = null) {}<?php
function foo(T1|null $a = null) {}<?php
function foo(?T1 $a = null) {}However, if such a parameter declaration is followed by a mandatory parameter:
<?php
function foo(T1 $a, T2 $b = null, T3 $c) {}<?php
function foo(T1 $a, T2|null $b, T3 $c) {}<?php
function foo(T1 $a, ?T2 $b, T3 $c) {}Raising zero to the power of negative number
    Raising a number to the power of a negative number is equivalent to taking
    the reciprocal of the number raised to the positive opposite of the power.
    That is, 10-2 is the same as
    1 / 102.
    Therefore raising 0 to the power of a negative number
    corresponds to dividing by 0, i.e.
    0-2 is the same as
    1 / 02, or
    1 / 0. Thus, this behavior has been deprecated.
   
    This affects the exponentiation operator **
    and the pow() function.
   
If the IEEE 754 semantics are desired one should use the new fpow() function.
Using underscore _ as class name
   
    Naming a class _ is now deprecated:
    
<?php
class _ {}注意:
Classes whose names start with an underscore are not deprecated:
<?php
class _MyClass {}
    Using trigger_error() with
    E_USER_ERROR
   
   
    Calling trigger_error() with
    error_level being equal to
    E_USER_ERROR is now deprecated.
   
Such usages should be replaced by either throwing an exception, or calling exit(), whichever is more appropriate.
cURL
   The CURLOPT_BINARYTRANSFER constant is now deprecated.
  
Date
   The  DatePeriod::__construct(string $isostr, int $options = 0)
   signature has been deprecated.
   Use DatePeriod::createFromISO8601String() instead.
  
   The SUNFUNCS_RET_TIMESTAMP,
   SUNFUNCS_RET_STRING,
   and SUNFUNCS_RET_DOUBLE constants are now deprecated.
   This follows from the deprecation of the date_sunset() and
   date_sunrise() functions in PHP 8.1.0.
  
DBA
   Passing null or false to dba_key_split() is now
   deprecated.
   It would always return false in those cases.
  
DOM
   The DOM_PHP_ERR constant is now deprecated.
  
The following properties have been formally deprecated:
Hash
Passing invalid options to hash functions is now deprecated.
Intl
Calling intlcal_set() or IntlCalendar::set() with more than two arguments is deprecated. Use either IntlCalendar::setDate() or IntlCalendar::setDateTime() instead.
Calling intlgregcal_create_instance() or IntlGregorianCalendar::__construct() with more than two arguments is deprecated. Use either IntlGregorianCalendar::createFromDate() or IntlGregorianCalendar::createFromDateTime() instead.
LDAP
Calling ldap_connect() with more than two arguments is deprecated. Use ldap_connect_wallet() instead.
Calling ldap_exop() with more than four arguments is deprecated. Use ldap_exop_sync() instead.
MySQLi
The mysqli_ping() function and mysqli::ping() method are now deprecated as the reconnect feature was removed in PHP 8.2.0.
   The mysqli_kill() function and
   mysqli::kill() method
   are now deprecated.
   If this functionality is needed a SQL KILL command
   can be used instead.
  
   The mysqli_refresh() function and
   mysqli::refresh() method
   are now deprecated.
   If this functionality is needed a SQL FLUSH command
   can be used instead.
   All MYSQLI_REFRESH_*
   constants have been deprecated as well.
  
   Passing the mode parameter to
   mysqli_store_result() explicitly has been deprecated.
   As the MYSQLI_STORE_RESULT_COPY_DATA constant was
   only used in conjunction with this function it has also been deprecated.
  
PDO_PGSQL
   Using escaped question marks (??) inside
   dollar-quoted strings is deprecated.
   Because PDO_PGSQL now has its own SQL parser with dollar-quoted strings
   support, it is no longer necessary to escape question marks inside them.
  
PGSQL
   The 2 arguments signature of pg_fetch_result(),
   pg_field_prtlen(), and
   pg_field_is_null() is now deprecated.
   Use the 3 arguments signature with row set to
   null instead.
  
Random
lcg_value() is now deprecated, as the function is broken in multiple ways. Use Random\Randomizer::getFloat() instead.
Reflection
Calling ReflectionMethod::__construct() with one arguments is deprecated. Use ReflectionMethod::createFromMethodName() instead.
Session
Calling session_set_save_handler() with more than two arguments is deprecated. Use the two arguments signature instead.
   Changing the value of the
   session.sid_length and
   session.sid_bits_per_character
   INI settings is deprecated.
   Update the session storage backend to accept 32 character hexadecimal
   session IDs and stop changing these two INI settings instead.
  
   Changing the value of the
   session.use_only_cookies,
   session.use_trans_sid,
   session.trans_sid_tags,
   session.trans_sid_hosts, and
   session.referer_check
   INI settings is deprecated.
   The SID constant is also deprecated.
  
SOAP
Passing an int to SoapServer::addFunction() is now deprecated. If all PHP functions need to be provided flatten the array returned by get_defined_functions().
   The SOAP_FUNCTIONS_ALL constant is now deprecated.
  
SPL
The SplFixedArray::__wakeup() method is now deprecated, as it implements SplFixedArray::__serialize() and SplFixedArray::__unserialize() which need to be overwritten instead.
   Using the default value for the escape parameter for the
   SplFileObject::setCsvControl(),
   SplFileObject::fputcsv(), and
   SplFileObject::fgetcsv() is now deprecated.
   
   It must be passed explicitly either positionally or via named arguments.
   This does not apply to SplFileObject::fputcsv()
   and SplFileObject::fgetcsv() if
   SplFileObject::setCsvControl() was used to set a
   new default value.
  
Standard
Calling stream_context_set_option() with two arguments is deprecated. Use stream_context_set_options() instead.
   Unserializing strings using the uppercase S tag
   with unserialize() is deprecated.
  
   Using the default value for the escape parameter for the
   fputcsv(),
   fgetcsv(), and
   str_getcsv()  is now deprecated.
   
   It must be passed explicitly either positionally or via named arguments.
  
XML
The xml_set_object() function has been deprecated.
Passing non-callable strings to the xml_set_()* functions is now deprecated.
用户贡献的备注
备份地址:http://www.lvesu.com/blog/php/migration84.deprecated.php