suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Der optionale Parameter $xxx nach $yyy ist erforderlich

<p><br /></p> <pre class="brush:none;toolbar:false;">VERALTET: Erforderlicher Parameter $xxx folgt optionalem Parameter $yyy... </pre> <p>Seit dem Upgrade auf PHP 8.0 wird dieser Fehler ausgegeben, wenn der folgende Code ausgeführt wird: </p> <pre class="brush:php;toolbar:false;">function test_function(int $var1 = 2, int $var2) { return $var1 / $var2; } </pre> <p>In früheren PHP-Versionen war dies kein Problem. </p>
P粉764836448P粉764836448470 Tage vor612

Antworte allen(2)Ich werde antworten

  • P粉616383625

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

    没有默认值的必需参数应该放在前面。

    function test_function(int $xxx, int $yyy = 2)
    {
        return $xxx * $yyy;
    }

    Antwort
    0
  • P粉451614834

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

    这种函数声明方式在PHP 8.0中已被弃用。像这样编写函数从来都没有意义,因为在调用函数时,所有参数(直到最后一个必需参数)都需要指定。这还导致了混淆,因为使用ReflectionFunctionAbstract类来分析函数和方法时会出现问题。

    新的弃用只是确保函数签名遵循常识假设,即必需参数应该始终在可选参数之前声明。

    应该重写函数以删除先前参数的默认值。由于函数永远不会在不声明所有参数的情况下被调用,因此这对其功能不会产生任何影响。

    function test_function(int $var1, int $var2) {
        return $var1 / $var2;
    }
    

    Antwort
    0
  • StornierenAntwort