PHP-Funktion „bcmod”
Verfasst: 28.03.2004 23:37
Frage: wie geht man mit der PHP-Funktion „bcmod” um ?
Ich weiß, daß daß die Funktion „bcmod” nur dann funktioniert, wenn auch die entsprechenden Elemente auf dem Server installiert sind.
Ruft man auf meinem Server „phpinfo()” auf, so wird angezeigt, daß die mathematischen Funktionen installiert sind: es heißt dort u.a.:
„PHP Version 4.1.1” (führe ich an, weil die Version evtl. von Bedeutung ist)
und in der Sektion „bcmath” steht:
„BCMath support = enabled”
Es sollte also eigentlich funktionieren ...
Ich möchte etwas in PHP programmiern, was in Abhängigkeit von der „Rest-Funktion” funktioniert.
(Es geht darum, eine Datumsfunktion zu programmieren, welche von einem Schaltjahr abhängig ist).
Daher dachte ich, daß man folgendes einrichten kann:
Zuerst hole ich mir das Serverdatum, und löse es auf:
$datum = getdate(time());
$year = $datum[year];
Dann möchte ich den Restwert haben, um festzustellen, ob es ein Schaltjahr ist:
$a = bcmod($year,4);
und das Ergebnis sollte eine Zahl zwischen 0 und 3 sein, je nach Jahreszahl.
Rufe ich dann die Variable $a auf, so erscheint immer eine „Null”.
echo $a;
(Resultat: 0)
Natürlich ist dann auch die Weiterverarbeitung von $a unsinnig, denn
$Februar = "28";
if ( $a = '0' ) $Februar = "29";
ergibt bei $Februar immer 29 als Resultat, da $a ja (immer ?) gleich Null ist.
Witzigerweise ergibt der Befehl
echo bcmod($year);
das richtige Ergebnis zwischen 0 und 3, je nach Jahreszahl.
Nur: man kann mit dem Resultat von „echo” nicht weiterarbeiten, es wird ja nicht einer Variablen zugeordnet.
Da ich die Funktion unbedingt brauche, habe ich ein „workaround” programmiert:
$Februar = 29
$datum = getdate(time());
$year = $datum[year];
$x = $year/4;
$y = floor($x);
$z = $x - $y;
if ( $z > '0' ) $Februar = 28;
Das funktioniert zwar, ist aber doch ein wenig umständlich, und ich frage mich, wozu es die Funktion „bcmod” eigentlich gibt.
Weiß jemand, wie man's richtig macht ?
Sehe ich 'mal wieder den Wald vor lauter Bäumen nicht ?
Ich weiß, daß daß die Funktion „bcmod” nur dann funktioniert, wenn auch die entsprechenden Elemente auf dem Server installiert sind.
Ruft man auf meinem Server „phpinfo()” auf, so wird angezeigt, daß die mathematischen Funktionen installiert sind: es heißt dort u.a.:
„PHP Version 4.1.1” (führe ich an, weil die Version evtl. von Bedeutung ist)
und in der Sektion „bcmath” steht:
„BCMath support = enabled”
Es sollte also eigentlich funktionieren ...
Ich möchte etwas in PHP programmiern, was in Abhängigkeit von der „Rest-Funktion” funktioniert.
(Es geht darum, eine Datumsfunktion zu programmieren, welche von einem Schaltjahr abhängig ist).
Daher dachte ich, daß man folgendes einrichten kann:
Zuerst hole ich mir das Serverdatum, und löse es auf:
$datum = getdate(time());
$year = $datum[year];
Dann möchte ich den Restwert haben, um festzustellen, ob es ein Schaltjahr ist:
$a = bcmod($year,4);
und das Ergebnis sollte eine Zahl zwischen 0 und 3 sein, je nach Jahreszahl.
Rufe ich dann die Variable $a auf, so erscheint immer eine „Null”.
echo $a;
(Resultat: 0)
Natürlich ist dann auch die Weiterverarbeitung von $a unsinnig, denn
$Februar = "28";
if ( $a = '0' ) $Februar = "29";
ergibt bei $Februar immer 29 als Resultat, da $a ja (immer ?) gleich Null ist.
Witzigerweise ergibt der Befehl
echo bcmod($year);
das richtige Ergebnis zwischen 0 und 3, je nach Jahreszahl.
Nur: man kann mit dem Resultat von „echo” nicht weiterarbeiten, es wird ja nicht einer Variablen zugeordnet.
Da ich die Funktion unbedingt brauche, habe ich ein „workaround” programmiert:
$Februar = 29
$datum = getdate(time());
$year = $datum[year];
$x = $year/4;
$y = floor($x);
$z = $x - $y;
if ( $z > '0' ) $Februar = 28;
Das funktioniert zwar, ist aber doch ein wenig umständlich, und ich frage mich, wozu es die Funktion „bcmod” eigentlich gibt.
Weiß jemand, wie man's richtig macht ?
Sehe ich 'mal wieder den Wald vor lauter Bäumen nicht ?