パラメータのデフォルト値が null の場合、
その型は暗黙的に null を受け入れるように拡張されます。
次のコードは:
<?php
function foo(T1 $a = null) {}<?php
function foo(T1|null $a = null) {}<?php
function foo(?T1 $a = null) {}しかし、そのようなパラメータ宣言の後に必須パラメータが続く場合:
<?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) {}
ある数の負のべき乗は、
その数の正のべき乗の逆数と同等です。
例えば、10-2 は
1 / 102 と同等です。
つまり、0の負のべき乗は
0 で割ることを意味します。例えば、
0-2 は
1 / 02、または
1 / 0 となります。以上より、この動作は非推奨とされました。
これはべき乗演算子 ** と
pow() 関数に影響します。
IEEE 754 のセマンティクスが必要な場合は、新しい fpow() 関数を使用してください。
_ とする
クラス名を _ とすることは、現在非推奨となっています:
<?php
class _ {}注意:
クラス名がアンダースコアで始まるのは、 非推奨ではありません:
<?php
class _MyClass {}
E_USER_ERROR を使用
trigger_error() で
error_level として
E_USER_ERROR を指定するのは非推奨となりました。
そのような場合、例外をスローするか、 exit() を呼び出すように修正すべきです。
CURLOPT_BINARYTRANSFER 定数は非推奨となりました。
DatePeriod::__construct(string $isostr, int $options = 0) の
シグネチャは非推奨となりました。
代わりに DatePeriod::createFromISO8601String() を使用してください。
SUNFUNCS_RET_TIMESTAMP、
SUNFUNCS_RET_STRING、
および SUNFUNCS_RET_DOUBLE 定数は非推奨となりました。
これは PHP 8.1.0 で date_sunset() と
date_sunrise() 関数が非推奨となったことに伴うものです。
dba_key_split() に null または false を渡すことは
非推奨となりました。
これらの場合、常に false を返していました。
ハッシュ関数に無効なオプションを渡すことは非推奨となりました。
intlcal_set() または IntlCalendar::set() を 2 つを超える引数で呼び出すことは非推奨となりました。 代わりに IntlCalendar::setDate() または IntlCalendar::setDateTime() を使用してください。
intlgregcal_create_instance() または IntlGregorianCalendar::__construct() を 2 つを超える引数で呼び出すことは非推奨となりました。 代わりに IntlGregorianCalendar::createFromDate() または IntlGregorianCalendar::createFromDateTime() を使用してください。
ldap_connect() を 2 つを超える引数で呼び出すことは非推奨となりました。 代わりに ldap_connect_wallet() を使用してください。
ldap_exop() を 4 つを超える引数で呼び出すことは非推奨となりました。 代わりに ldap_exop_sync() を使用してください。
mysqli_ping() 関数および mysqli::ping() メソッドは、 PHP 8.2.0 で再接続機能が削除されたため、非推奨となりました。
mysqli_kill() 関数および
mysqli::kill() メソッド
は非推奨となりました。
この機能が必要な場合は、代わりに SQL の KILL
コマンドを使用できます。
mysqli_refresh() 関数および
mysqli::refresh() メソッドは
非推奨となりました。
この機能が必要な場合は、代わりに SQL の FLUSH コマンド
を使用できます。
すべての MYSQLI_REFRESH_*
定数も非推奨となりました。
mysqli_store_result() に
mode パラメータを明示的に渡すことは非推奨となりました。
この関数のために用意されていたMYSQLI_STORE_RESULT_COPY_DATA 定数も
非推奨となりました。
ドル記号で囲まれた文字列の中で
エスケープされた疑問符(??)を使用することは非推奨となりました。
PDO_PGSQL はドル記号で囲まれた文字列をサポートする独自の SQL パーサーを持つようになったため、
それらの中で疑問符をエスケープする必要はなくなりました。
pg_fetch_result()、
pg_field_prtlen()、
および pg_field_is_null() の 2 引数のシグネチャは非推奨となりました。
代わりに row を null に設定した 3 引数のシグネチャを
使用してください。
lcg_value() は非推奨となりました。 この関数は複数の点で問題があるためです。 代わりに Random\Randomizer::getFloat() を使用してください。
ReflectionMethod::__construct() を 1 つの引数で呼び出すことは非推奨となりました。 代わりに ReflectionMethod::createFromMethodName() を使用してください。
session_set_save_handler() を 2 つを超える引数で呼び出すことは非推奨となりました。 2 引数のシグネチャを使用してください。
session.sid_length および
session.sid_bits_per_character
の INI 設定値を変更することは非推奨となりました。
セッションストレージバックエンドを修正し、 16 進数 32 文字による
セッション ID を受け入れるようにし、これら 2 つの INI 設定を変更するのをやめてください。
session.use_only_cookies、
session.use_trans_sid、
session.trans_sid_tags、
session.trans_sid_hosts、および
session.referer_check
の INI 設定値を変更することは非推奨となりました。
SID 定数も非推奨となりました。
SoapServer::addFunction() に int を渡すことは非推奨となりました。 すべての PHP 関数を提供する必要がある場合は、 get_defined_functions() が返す配列をフラット化してください。
SOAP_FUNCTIONS_ALL 定数は非推奨となりました。
SplFixedArray::__wakeup() メソッドは 非推奨となりました。代わりに SplFixedArray::__serialize() と SplFixedArray::__unserialize() をオーバーライドしてください。
SplFileObject::setCsvControl()、
SplFileObject::fputcsv()、および
SplFileObject::fgetcsv() で
escape パラメータのデフォルト値を利用することは非推奨となりました。
引数または名前付き引数で明示的に指定する必要があります。
これは、SplFileObject::setCsvControl() で
新しいデフォルト値を設定した場合、SplFileObject::fputcsv() および
SplFileObject::fgetcsv() には適用されません。
stream_context_set_option() を 2 つの引数で呼び出すことは非推奨となりました。 代わりに stream_context_set_options() を使用してください。
unserialize() で大文字の S タグを使用して文字列を
アンシリアライズすることは非推奨となりました。
fputcsv()、
fgetcsv()、および
str_getcsv() の
escape パラメータのデフォルト値を利用することは非推奨となりました。
引数または名前付き引数で明示的に指定する必要があります。