新しいこれらのメソッドだけを実装するか、 これらのメソッドをサポートしていない PHP 7.4 より前のバージョンでも使う場合は、 新旧両方のインターフェイスを実装すべきです。
null を渡した場合ビルトイン関数のスカラー型の引数は、 デフォルトで nullable ですが、 この振る舞いは推奨されなくなりました。 ユーザ定義の関数においては、 スカラー型の引数は nullable と明示的にマークする必要があり、 その振る舞いと合わせるためです。
<?php
var_dump(str_contains("foobar", null));
// Deprecated: Passing null to parameter #2 ($needle) of type string
//             is deprecated
?>精度を損なうことになる float から int への暗黙の変換は、 推奨されなくなりました。 これは配列のキーに float を使った場合や、 型の自動変換 (coerciveモード) 時に int 型を宣言した場合や、 int に対して演算子を適用する場合に影響します。
<?php
$a = [];
$a[15.5]; // 推奨されません。0.5 がキーの値から失われるからです
$a[15.0]; // 15.0 == 15 なので OK
?>トレイトにある static メソッドや、 static プロパティに直接アクセスすることは、 推奨されなくなりました。 これらは、トレイトを使っているクラスからのみアクセスすべきものです。
配列でない値を __sleep() から返すと、警告が発生するようになりました。
<?php
function &test(): void {}
?>Only variable references should be returned by reference
    という E_NOTICE
    が既に発生するようになっています。
   
  false な変数を自動的に復活させる挙動(Autovivification)
    Autovivification とは、
    値を追加しようとする際に配列を自動で生成する処理のことです。
    スカラー型の値からこのような処理を行うことは禁止されていますが、
    false だけは例外でした。
    このバージョンから、この例外も推奨されなくなります。
    
<?php
$arr = false;
$arr[] = 2;   // 推奨されません
?>注意:
nullや 未定義値から、 自動的に配列を生成する処理は未だ許可されています:<?php
// 未定義値から配列を生成
$arr[] = 'some value';
$arr['doesNotExist'][] = 2;
// null から配列を生成
$arr = null;
$arr[] = 2;
?>
    ctype関数 に文字列でない引数を渡すことは、
    推奨されなくなりました。
    将来のバージョンでは、引数は ASCII コードポイントではなく、
    文字列として解釈されるようになります。
    ユーザが意図する振る舞いによっては、
    引数を文字列にキャストするか、
    chr()
    を明示的にコールすべきです。
    全ての ctype_*() 関数が影響を受けます。
   
date_sunrise() と date_sunset() は、推奨されなくなりました。 date_sun_info() を使って下さい。
strptime() 関数は、 推奨されなくなりました。 (ロケールに依存しないパースを行う場合) date_parse_from_format() または (ロケールに依存するパースを行う場合) IntlDateFormatter::parse() を代わりに使って下さい。
strftime() と gmstrftime() は、推奨されなくなりました。 (ロケールに依存しないフォーマットを行う場合) date() または (ロケールに依存するフォーマットを行う場合) IntlDateFormatter::format() を代わりに使って下さい。
   FILTER_SANITIZE_STRING
   と
   FILTER_SANITIZE_STRIPPED
   フィルタは、推奨されなくなりました。
  
INI ディレクティブ filter.default は、推奨されなくなりました。
   imagepolygon(),
   imageopenpolygon(),
   imagefilledpolygon()
   の
   num_points 引数は、
   推奨されなくなりました。
  
   mhash(),
   mhash_keygen_s2k(),
   mhash_count(),
   mhash_get_block_size(),
   mhash_get_hash_name()
   は、推奨されなくなりました。
   hash_*() 関数を代わりに使って下さい。
  
   定数 NIL は、推奨されなくなりました。
   0 を代わりに使って下さい。
  
   IntlCalendar::roll()
   に bool 引数を渡してコールすることは、
   推奨されなくなりました。
   true と false
   の代わりに、
   1 と -1
   をそれぞれ渡すようにして下さい。
  
mb_check_encoding() 関数を引数を渡さずにコールすることは、推奨されなくなりました。
   mysqli_driver::$driver_version
   プロパティは、推奨されなくなりました。
   このプロパティは意味がなく、時代遅れになっています。
   PHP_VERSION_ID
   を代わりに使って下さい。
  
   mysqli 引数を渡して、
   mysqli::get_client_info() や
   mysqli_get_client_info()
   をコールすることは、推奨されなくなりました。
   クライアントライブラリのバージョン情報を取得するには、
   mysqli_get_client_info()
   を引数なしでコールするようにして下さい。
  
mysqli::init() メソッドは、 推奨されなくなりました。 parent::init() のコールを parent::__construct() に置き換えるようにして下さい。
INI ディレクティブ oci8.old_oci_close_semantics は、推奨されなくなりました。
odbc_result_all() 関数は推奨されなくなりました。
   フェッチモードの定数 PDO::FETCH_SERIALIZE
   は、推奨されなくなりました。
  
   全ての
   pgsql_*()
   関数に対して、接続リソースを渡さないことは推奨されなくなりました。
  
   SoapClient::__construct()
   の
   ssl_method オプションは推奨されなくなりました。
   SSL コンテキストオプションを使うのが望ましいです。
   
  
object に対して、 key(), current(), next(), prev(), reset(), end() を呼び出すことは推奨されなくなりました。 get_mangled_object_vars() を使って 最初に object を配列に変換するか、 ArrayIterator のような Iterator を実装したクラスのメソッドを使ってください。
   INI ディレクティブ
   auto_detect_line_endings
   は、推奨されなくなりました。
   必要な場合は、
   "\r" を手動で扱うようにして下さい。
  
   定数
   FILE_BINARY と
   FILE_TEXT は推奨されなくなりました。
   これらの定数は、使われたことがありませんでした。
  
