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?
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;
}
?>