Warum ist die Funktion " call-by-reference in PHP veraltet?

Schrieb ich den folgenden code:

<?php
    $a1 = "WILLIAM";
    $a2 = "henry";
    $a3 = "gatES";

    echo $a1." ".$a2." ".$a3. "<br />";

    fix_names($a1, $a2, $a3);

    echo $a1." ".$a2." ".$a3;

    function fix_names(&$n1, &$n2, &$n3)
    {
        $a1 = ucfirst(strtolower(&$n1));
        $a2 = ucfirst(strtolower(&$n2));
        $a3 = ucfirst(strtolower(&$n3));

    }

    ?>

Erhielt ich diese Mitteilung: Veraltet: Call-time pass-by-reference wurde als veraltet markiert

Ich brauche eine Erklärung warum erhalte ich diese Mitteilung? Und warum in PHP Version 5.3.13, das ist veraltet?

  • stackoverflow.com/questions/4665782/...
  • Gab es irgendeinen besonderen Grund, warum Sie wurden mit call-time pass-by-reference hier überhaupt?
  • Wie, warum (nur eine Vermutung): Call-time pass-by-reference kann zu unerwartetem Verhalten führen, wenn die Funktion nicht erwarten, Referenzen.
  • Fand die offiziellen Grund: "Übergabe von Argumenten per Referenz an Funktion war veraltet, die für die code-Sauberkeit Gründen. Eine Funktion ändern kann seine Argumente in eine nicht dokumentierte Möglichkeit, wenn es uns nicht erklären, dass das argument wird als Referenz übergeben werden. Um zu verhindern, dass Nebenwirkungen es ist besser, um anzugeben, welche Argumente per Referenz in die Funktion der Erklärung nur."
  • Wie zu sehen, was passiert!
Schreibe einen Kommentar