$yyy の後のオプションのパラメータ $xxx は必須です
P粉764836448
2023-08-15 21:10:56
<p><br /></p>
<pre class="brush:none;toolbar:false;">非推奨: 必須パラメータ $xxx の後にオプション パラメータ $yyy が続きます...
</pre>
<p>PHP 8.0 にアップグレードしてから、次のコードを実行するとこのエラーがスローされます。</p>
<pre class="brush:php;toolbar:false;">function test_function(int $var1 = 2, int $var2) {
$var1 / $var2 を返します。
}
</pre>
<p>過去の PHP バージョンでは、これは問題ありませんでした。 </p>
デフォルト値のない必須パラメータは最初に配置する必要があります。
リーリーこの関数宣言方法は、PHP 8.0 では非推奨になりました。関数を呼び出すときにすべての引数 (最後の必須引数まで) を指定する必要があるため、このような関数を作成することは決して意味がありません。これは、関数やメソッドを分析するために ReflectionFunctionAbstract クラスを使用する際に問題が発生するため、 混乱を招きました。
新しい非推奨は、関数シグネチャが、必須パラメーターは常にオプションのパラメーターの前に宣言されるべきであるという常識の前提に従うことを保証するだけです。
関数を書き直して、以前のパラメータのデフォルト値を削除する必要があります。関数はすべてのパラメーターを宣言せずに呼び出されることはないため、これは関数の機能には影響しません。
リーリー