検索

ホームページ  >  に質問  >  本文

$yyy の後のオプションのパラメータ $xxx は必須です

<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>
P粉764836448P粉764836448507日前647

全員に返信(2)返信します

  • P粉616383625

    P粉6163836252023-08-16 14:16:18

    デフォルト値のない必須パラメータは最初に配置する必要があります。

    リーリー

    返事
    0
  • P粉451614834

    P粉4516148342023-08-16 09:03:20

    この関数宣言方法は、PHP 8.0 では非推奨になりました。関数を呼び出すときにすべての引数 (最後の必須引数まで) を指定する必要があるため、このような関数を作成することは決して意味がありません。これは、関数やメソッドを分析するために ReflectionFunctionAbstract クラスを使用する際に問題が発生するため、 混乱を招きました。 新しい非推奨は、関数シグネチャが、必須パラメーターは常にオプションのパラメーターの前に宣言されるべきであるという常識の前提に従うことを保証するだけです。

    関数を書き直して、以前のパラメータのデフォルト値を削除する必要があります。関数はすべてのパラメーターを宣言せずに呼び出されることはないため、これは関数の機能には影響しません。

    リーリー

    返事
    0
  • キャンセル返事