Ostersonntage berechnen


tklustig

Erfahrenes Mitglied
#1
Hallo Leute,
folgende Funktion berechnet mir, abhängig von den Formulareingaben den Ostersonntag. Ich frage mich, warum das klappt, da die Funktion nix zurück gibt. Zumindest ist nirgends ein return definiert. Weiß jemand Rat? Ich weiß wohl, dass eine Referenz übergeben wird, aber auch ein Speicheradresse muss doch zurück gegeben werden, oder täusche ich mich?
PHP:
        <?php
        // Großere Jahreszahl zuerst? Tauschen!
        $anfang = $_POST["anfang"];
        $ende = $_POST["ende"];
        if ($anfang > $ende) {
            $temp = $anfang;
            $anfang = $ende;
            $ende = $temp;
        }
        ?>
        <table border='1'>
            <tr><td><b>Jahr</b></td>
                <td><b>Datum</b></td></tr>
            <?php
            // Schleife über alle Jahreszahlen
            for ($jahr = $anfang; $jahr <= $ende; $jahr++) {
                ostersonntag($jahr, $tag, $monat);
                ?><tr><td><?= $jahr ?></td><td><?= $tag . "." . $monat . "." . $jahr ?></td></tr><?php
                }
                ?> </table>

        <?php

        function ostersonntag($j, &$t, &$m) {
            // Berechnung von klein d
            $d = ((15 + floor($j / 100) - floor($j / 400) - floor((8 * floor($j / 100) + 13) / 25)) % 30 + 19 * ($j % 19)) % 30;

            // Berechnung von groß D
            if ($d == 29)
                $D = 28;
            else if ($d == 28 && $j % 17 >= 11)
                $D = 27;
            else
                $D = $d;

            // Berechnung von klein e
            $e = (2 * ($j % 4) + 4 * ($j % 7) + 6 * $D + (6 + floor($j / 100) - floor($j / 400) - 2) % 7) % 7;

            // Berechnung von Tag und Monat
            $m = "03";
            $t = 21 + $e + $D + 1;
            if ($t > 31) {
                $m = "04";
                $t = $t - 31;
            }
            if ($t < 10)
                $t = "0" . $t;
        }
        ?>
 

tklustig

Erfahrenes Mitglied
#3
Seltsam. in der Programmierspache C muss man Pointer doch auch mit return zurückgeben. Daß PHP das nicht zwingend vorschreibt hat mich halt überrascht.
Gebrauche den CallByReference-Operator so gut wie nie, immer nur CallByValue. Gut zu wissen....
Dieser Thread kann geschlossen werden.
Danke für deine Antwort!
 

Neue Beiträge