Mr.Nobody
10-11-2003, 19:55
Hallo,
Ich habe in meinem Buch gelesen, daß eine Funktion immer einen Rückgabewert braucht mit return = xxxx;
Jetzt habe ich eine Funktion aus einem Buch verändert, und habe return durch echo oder print ersetzt. Das Programm gibt bei Aufruf aber noch immer das richtige Ergebnis
aus. Wie ist das möglich? Wird die Funktion dann noch vollständig abgearbeitet?
Oder ignoriert der Parser auch Fehler?
<html>
<head>
</head>
<body>
<?
$Start = "08.03.02";
$Ende = "30.11.02";
echo DatumsDiff("$Start", "$Ende");
function DatumsDiff($Start, $Ende) {
$Tag1 = (int) substr($Start, 0, 2);
$Monat1 = (int) substr($Start, 3, 2);
$Jahr1 = (int) substr($Start, 6, 4);
$Tag2 = (int) substr($Ende, 0, 2);
$Monat2 = (int) substr($Ende, 3, 2);
$Jahr2 = (int) substr($Ende, 6, 4);
if (checkdate($Monat1, $Tag2, $Jahr2) and
checkdate($Monat2, $Tag2, $Jahr2))
{
$Datum1 = mktime(0,0,0, $Monat1, $Tag1, $Jahr1);
$Datum2 = mktime(0,0,0, $Monat2, $Tag2, $Jahr2);
$Diff = (Integer) (($Datum2 -$Datum1) / 3600 / 24);
echo $Diff;
// return $Diff;
// print $Diff;
}
else {
return -1;
}
}
?>
</body>
</html>
Ich frage deshalb, damit ich das mit dem Rückgabewert und return besser verstehe.
mfG
N.
Ich habe in meinem Buch gelesen, daß eine Funktion immer einen Rückgabewert braucht mit return = xxxx;
Jetzt habe ich eine Funktion aus einem Buch verändert, und habe return durch echo oder print ersetzt. Das Programm gibt bei Aufruf aber noch immer das richtige Ergebnis
aus. Wie ist das möglich? Wird die Funktion dann noch vollständig abgearbeitet?
Oder ignoriert der Parser auch Fehler?
<html>
<head>
</head>
<body>
<?
$Start = "08.03.02";
$Ende = "30.11.02";
echo DatumsDiff("$Start", "$Ende");
function DatumsDiff($Start, $Ende) {
$Tag1 = (int) substr($Start, 0, 2);
$Monat1 = (int) substr($Start, 3, 2);
$Jahr1 = (int) substr($Start, 6, 4);
$Tag2 = (int) substr($Ende, 0, 2);
$Monat2 = (int) substr($Ende, 3, 2);
$Jahr2 = (int) substr($Ende, 6, 4);
if (checkdate($Monat1, $Tag2, $Jahr2) and
checkdate($Monat2, $Tag2, $Jahr2))
{
$Datum1 = mktime(0,0,0, $Monat1, $Tag1, $Jahr1);
$Datum2 = mktime(0,0,0, $Monat2, $Tag2, $Jahr2);
$Diff = (Integer) (($Datum2 -$Datum1) / 3600 / 24);
echo $Diff;
// return $Diff;
// print $Diff;
}
else {
return -1;
}
}
?>
</body>
</html>
Ich frage deshalb, damit ich das mit dem Rückgabewert und return besser verstehe.
mfG
N.