CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden |
08.02.2008, 20:01:29
|
Anfänger
|
|
Registriert seit: Jan 2008
Ort: plz58
Beiträge: 16
|
|
Variable ändert sich von selber oder ich sehr doof
hallo Forum, ich brauche eure Hilfe bei einer Sache wo ich nun tagelang dran sitze.
Ich habe eine Zahl, bei der ich fest stellen möchte ob da zwei Nullen vorne dran sind und die dann abschneiden. Eigendlich sollte das ganz einfach sein, dachte ich. Aber php wandelt wie von Geisterhand die gegebene Variable einfach um... kaum hab ich die Variable deklariert, lasse ich sie ausgeben und es ist eine andere.
Ich hab das bei mir auf Ubuntu und bei meinem Provider getestet, beide male kommt das selbe Ergebnis.
Was mache ich falsch?
Mache ich was falsch?
PHP-Code:
$dest = 0233193;
echo "Nummer: ".$dest."<br>";
$form1 = strpos($dest, '0');
if ($form1 = 0){
$sub1 = substr($dest, 1);
}
if($sub1){
$form2 = strpos($sub1, '0');
}
if ($form2 = 0){
$sub2 = substr($sub1, 1);
}
//-----------------
echo "Nummer: ".$dest."<br>";
echo "erster Substring: ".$sub1."<br>";
echo "zweiter Substring: ".$sub2." ";
Ausgabe ist:
Nummer: 1241
Nummer: 1241
erster Substring:
zweiter Substring:
Geändert von allapow (08.02.2008 um 20:02:34 Uhr)
|
08.02.2008, 20:45:31
|
Anfänger
|
|
Registriert seit: May 2007
Alter: 44
Beiträge: 53
|
|
AW: Variable ändert sich von selber oder ich sehr doof
Nicht von Geisterhand... its not a bug, its a funtion .
PHP wandelt die variable nur automatisch in eine Zahlenvariable um, wenn eine Zahl zugewiesen wird.
So gesehn vergleichst du Äüpfel mit Birnen.
__________________
Das Leben ist ein komisches Spiel...
Aber die Grafik ist GEIL !
|
08.02.2008, 20:46:53
|
Anfänger
|
|
Registriert seit: Jan 2008
Ort: plz58
Beiträge: 16
|
|
AW: Variable ändert sich von selber oder ich sehr doof
ok, es liegt wohl an der Null am Anfang, denn ohne '0' "spinnt" nichts.
Aber die Zahlen, die ich bearbeiten möchte, haben meistens eine Null am Anfang, was kann ich da machen?
|
08.02.2008, 20:53:42
|
Anfänger
|
|
Registriert seit: Jan 2008
Ort: plz58
Beiträge: 16
|
|
AW: Variable ändert sich von selber oder ich sehr doof
kann ich PHP sagen, dass das eine Zahl ist? So wie in Java z.B.?
|
08.02.2008, 21:37:47
|
Senior Member
|
|
Registriert seit: Sep 2007
Ort: Potsdam
Alter: 55
Beiträge: 1.020
|
|
AW: Variable ändert sich von selber oder ich sehr doof
Ein Zahlen literal, das mit 0 anfängt, wird als Oktalzahl interpretiert.
http://de.wikipedia.org/wiki/Oktal
__________________
Wat der Bauer nich kennt, dit frisster nich.
|
08.02.2008, 22:29:33
|
Anfänger
|
|
Registriert seit: Jan 2008
Ort: plz58
Beiträge: 16
|
|
AW: Variable ändert sich von selber oder ich sehr doof
ok, mit '0' ist es eine oktale Zahl. Mit einfacher Typzuweisung:
$zahl = (int) 0233193;
geht es nicht.
ich finde nicht wie ich PHP sage, dass es eine dezimale Zahl ist. Hexadezimal finde ich auch noch und oktal war dann mit '0'... aber wie wenn ich dezimal meine?
|
09.02.2008, 10:23:25
|
Senior Member
|
|
Registriert seit: Sep 2007
Ort: Potsdam
Alter: 55
Beiträge: 1.020
|
|
AW: Variable ändert sich von selber oder ich sehr doof
Zitat:
Zitat von allapow
ich finde nicht wie ich PHP sage, dass es eine dezimale Zahl ist.
|
Indem Du PHP nicht sagst, dass es eine Oktalzahl sei. Lass die 0 weg beim Literal. Sonst ist das so, als wenn Du den Fisch bestellst und Dich dann ärgerst, dass Du kein Fleisch bekommen hast.
Wir reden hier aber nur von Literalen, also von etwas, das Du direkt ins Skript schreibst.
Du schreibst die Zahl direkt ins Skript d.h. wenn der PHP Parser arbeitet, findet er die Ziffernfolge und interpretiert sie, führende 0 also Oktal.
Wenn der Wert zum Beispiel aus einer Benutzereingabe per HTML Formular stammt, gilt das nicht. Erstens gelangt die Eingabe dann als Zeichenkette in die variable und zweitens ignoriert PHP führende Nullen bei der Umwandlung Zeichenkette->Zahl einfach.
PHP-Code:
<html><head><title><body> <pre><?php if (isset($_POST['zahl'])) echo (int)$_POST['zahl'] - 3; ?></pre> <form method="post" action="?"> <div> <input type="text" name="zahl" value="0233193" /> <input type="submit" /> </div> </form> </body></html>
__________________
Wat der Bauer nich kennt, dit frisster nich.
Geändert von defabricator (09.02.2008 um 10:24:26 Uhr)
|
09.02.2008, 13:22:43
|
|
Junior Member
|
|
Registriert seit: Mar 2006
Beiträge: 415
|
|
AW: Variable ändert sich von selber oder ich sehr doof
Fazit,
PHP-Code:
$zahl = (int) '0233193';
sollte es tun
__________________
Bitte sprich entweder deutsch oder englisch mit mir, aber nicht beides gleichzeitig.
----------
Bitte vor dem Fragen lesen: Wie man Fragen richtig stellt.
|
09.02.2008, 13:24:43
|
Senior Member
|
|
Registriert seit: Sep 2007
Ort: Potsdam
Alter: 55
Beiträge: 1.020
|
|
AW: Variable ändert sich von selber oder ich sehr doof
Das ist dann ein Zeichenkettenliteral und die daraus resultierende Zeichenkette wird in eine Zahl (ohne führende Null) umgewandelt. Was zum Henker ist der Sinn davon?
__________________
Wat der Bauer nich kennt, dit frisster nich.
|
09.02.2008, 13:53:59
|
|
Junior Member
|
|
Registriert seit: Mar 2006
Beiträge: 415
|
|
AW: Variable ändert sich von selber oder ich sehr doof
Naja ich frage mich was der Sinn der ganzen Aktion überhaupt sein soll. Er will ja offenbar eine Variable konstant definieren und möchte da eine führende 0 beischreiben. Warum auch immer.
__________________
Bitte sprich entweder deutsch oder englisch mit mir, aber nicht beides gleichzeitig.
----------
Bitte vor dem Fragen lesen: Wie man Fragen richtig stellt.
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 10:04:47 Uhr.
|