Senden von default-parameter als null, und verwenden Sie Standard-Wert in Funktion

Habe ich-Funktion, wie unten beschrieben.

function test($username, $is_active=1, $sent_email=1, $sent_sms=1) {

  echo $sent_email;  //It should print default ie 1

}

Aufruf der Funktion :

  test($username, 1, null, 1);

Wie call-Funktion wenn Sie müssen, verwenden Sie den Standardwert in der Funktion. $sent_email sollte 1 sein. Kann keine änderung der Reihenfolge der parameter.

  • Ihre Funktion ist zu viel zu tun und du siehst nun, warum ist das ein problem.
  • Übergeben Sie ein array von Parametern function test(array $params)
  • …und Lesen diesen thread
InformationsquelleAutor Online | 2016-09-28



2 Replies
  1. 1

    Wenn Sie starten Sie den value-Parameter passiert:

     function makecoffee($type = "cappuccino")
        {
            return "Making a cup of $type.\n";
        }
        echo makecoffee();
        echo makecoffee(null);
        echo makecoffee("espresso");
        ?>

    Dem obigen Beispiel wird ausgegeben:

    Making a cup of cappuccino.
    Making a cup of .
    Making a cup of espresso.

    Zu erfüllen, was Sie möchten, um zu überprüfen, mit Bedingungen wie folgt:

    function test($username, $is_active=1, $sent_email=1, $sent_sms=1) {
    
        if($sent_email!=1)
            $sent_email=1;
          echo $sent_email;  //It should print default ie 1
    
        }
    • Diese überschreiben die sinnvolle anderen Wert als 1 mit dem default-Wert. Verwenden if ($sent_email === null) als Bedingung zu ersetzen, die nur (nicht sinnvoll) null Werte.
  2. -1

    In php können Sie nicht erklären mehr als 1 parameter mit default-Wert in der Funktion.
    Php konnte nicht wissen, welche Parameter Sie nicht geben, wenn du mehrere default-Wert…

    In Ihrem Fall, geben Sie den Parameter, mit dem Wert null. Das ist ganz anders ! So können Sie die folgenden verwenden :

    function test($username, $is_active, $sent_email, $sent_sms) {
        $username = ($username != null) ? $username : 1;
        $is_active = ($is_active != null) ? $is_active : 1;
        $sent_email = ($sent_email != null) ? $sent_email : 1;
    
      echo $sent_email;  //It should print default ie 1
    
    }

    als es, wenn Sie null ist, Ihre Funktion wird mit „1“ – Wert und wenn nicht null, wird der Wert übergeben Sie als parameter 😉

    • „In php können Sie nicht erklären mehr als 1 parameter mit default-Wert in die Funktion“ Sicher können Sie.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.