Operatoren
andy
- php
-1 Cheatah
Hi.
Schreibe gerade an einem Tutorial über PHP. Bisher bin ich bis zu den Operatoren gekommen, und dabei ist mir folgendes aufgefallen:
echo "3+2=", 3+2, "<br>"; /* Gibt 5 aus */
echo "3==2=", 3==2, "<br>"; /* Gibt true zurück, wenn Vergleich erfolgreich, ansonsten false */
echo "3^2=", 3^2, "<br>"; /* Gibt 9 zurück, weil 3^2 = 3*3 = 9 */
echo "3<=2=", 3<=2, "<br>"; /* Gibt false zurück, weil 3 nicht kleiner als 2 ist */
Interessant wäre die dritte Zeile
Das ^ gibt doch Potenzen an, richtig? Also wäre 3^2 = 3*3 = 9 ! Aber warum gibt man mir hier 1 aus? "1" erwarte ich eher beim Modulus 3%2 - aber warum nicht beim Zirkumflex?
Danke
andy
Hi,
Das ^ gibt doch Potenzen an, richtig?
nein.
Aber warum gibt man mir hier 1 aus?
Weil 3 XOR 2 nun mal 1 ist. Wieso kennst Du, der Du ein Tutorial zum Thema PHP schreibst, dessen Dokumentation nicht?
Cheatah
Hi,
Das ^ gibt doch Potenzen an, richtig?
nein.
Dann verzapft mir Wikipedia nen Sch... http://de.wikipedia.org/wiki/Zirkumflex - Der letzt Absatz:
[quote]
Auch in der Mathematik wird das Zeichen oft verwendet, um Potenzen zu kennzeichnen. Bei der Berechnung von Potenzen, z. B. mit einem Tabellenkalkulationsprogramm oder mit einem Taschenrechner schreibt man statt x² -> x^2.
[/quote]
Aber warum gibt man mir hier 1 aus?
Weil 3 XOR 2 nun mal 1 ist. Wieso kennst Du, der Du ein Tutorial zum Thema PHP schreibst, dessen Dokumentation nicht?
Kenn ich natürlich. Sa steht etwas von Bit-Operatoren. Aber Wikipedia hat mich total verwirrt - es gibt doch Potenzen an und hat nichts mit der Ein/Ausschaltung der Bits zu tun (laut Wikipedia jedenfalls). Bitte sagt mir wie es richtig ist.
andy
Hallo andy.
Dann verzapft mir Wikipedia nen Sch... http://de.wikipedia.org/wiki/Zirkumflex - Der letzt Absatz:
Nein, das stimmt schon.
[quote]
z. B. mit einem Tabellenkalkulationsprogramm oder mit einem Taschenrechner schreibt man statt x² -> x^2.
[/quote]
Jupp, siehe LaTex: [latex]x^2[/latex]
Gruß, Ashura
Hi,
Dann verzapft mir Wikipedia nen Sch...
warum? Das, was dort steht, hat nicht den geringsten Zusammenhang zu PHP. Wo siehst Du einen Widerspruch, oder auch nur eine Verbindung? Genauso gut könntest Du sagen, das für die Negation übliche "!" dürfe nicht links eines Ausdrucks stehen, weil es ein Fakultätzeichen ist und nach rechts gehört. Oder ein gebräuchliches Symbol für Schnalzlaute in afrikanischen Sprachen ist.
Kenn ich natürlich. Sa steht etwas von Bit-Operatoren. Aber Wikipedia hat mich total verwirrt - es gibt doch Potenzen an und hat nichts mit der Ein/Ausschaltung der Bits zu tun (laut Wikipedia jedenfalls). Bitte sagt mir wie es richtig ist.
Ein Operator beschreibt eine Operation, keine mathematische Formel. "=" ist ein Zuweisungsoperator, und "x+3y=7" weist wohl kaum zwei Variablen einen gemeinsamen Wert zu. Du verquickst hier zwei Welten, die nichts miteinander zu tun haben.
Cheatah
Cheatah,
"!" […] ein gebräuchliches Symbol für Schnalzlaute in afrikanischen Sprachen ist.
Dieses ist eigentlich U+01C3.
Gunnar
Hi,
"!" […] ein gebräuchliches Symbol für Schnalzlaute in afrikanischen Sprachen ist.
Dieses ist eigentlich U+01C3.
nun ja: "Latin Letter Retroflex Click = Latin Letter Exclamation Mark" (Unibook). Darüber hinaus gibt es hinreichend viele Kontexte, in denen Unicode nicht wirklich eine Rolle spielt - Papier beispielsweise. Davon abgesehen hast Du natürlich Recht ;-)
Cheatah
Hi Cheatah,
nun ja: "Latin Letter Retroflex Click = Latin Letter Exclamation Mark" (Unibook).
Nun ja: Latin Letter Exclamation Mark ≠ Exclamation Mark (Universität) ;-)
^^^^^^
Darüber hinaus gibt es hinreichend viele Kontexte, in denen Unicode nicht wirklich eine Rolle spielt - Papier beispielsweise.
Jaja, Papier ist geduldig.
Bei einer Textverarbeitung spielt es schon eine Rolle. Wenn du bspw. nach dem Buchstaben "ǃ" suchst, willst du nicht über die Satzzeichen "!" stolpern.
Gunnar
Hi,
nun ja: "Latin Letter Retroflex Click = Latin Letter Exclamation Mark" (Unibook).
Nun ja: Latin Letter Exclamation Mark ≠ Exclamation Mark (Universität) ;-)
ja :-) Der Unterschied zwischen unseren beiden Diskursansätzen ist, dass Du die technische Seite betrachtest, während ich mich einfach nur auf die Symbolik beziehe, weil andy meiner Ansicht nach lediglich ein Problem mit der Einordnung von Symbolen in einem bestimmten Kontext hat. Das Auge findet ein "ǃ" auch dann, wenn es ein "!" sucht.
Bei einer Textverarbeitung spielt es schon eine Rolle. Wenn du bspw. nach dem Buchstaben "ǃ" suchst, willst du nicht über die Satzzeichen "!" stolpern.
Was spricht dagegen? Letztlich ist es nur eine Frage der Komplexität und Flexibilität der Suchfunktion.
Cheatah
Cheatah,
Das Auge findet ein "ǃ" auch dann, wenn es ein "!" sucht.
Das Auge hält ein "-" ja auch für einen Bindestrich. Oder einen Gedankenstrich. Oder ein Minuszeichen. Und '"' für Anführungszeichen. Oder Zoll-Zeichen.
Das Problem ist, dass nicht alle Zeichen auf der Tastatur sind; und eine Tastatur mit 400 Tasten ist dem Anwender ebensowenig zuzumuten wie sich den Zeichencode aus einer Tabelle rauszusuchen und einzutippen.
Da muss die Software notwendig intelligent sein, "-" in "–" bzw. "−" umzuwandeln und '"' in '„', '“', '”' bzw '″'. Und hinreichend intelligent, das möglichst fehlerlos hinzubekommen. (M$ Word vertippt sich da schon mal.)
Deshalb stehen sicher viele "!" für Klicklaute. Und deshalb sagte ich auch "eigentlich".
Letztlich ist es nur eine Frage der Komplexität und Flexibilität der Suchfunktion.
Du willst Word-Anwendern keine Suche mit regulären Ausdrücken zumuten, oder? Achso, das kann Word ja auch gar nicht.
Gunnar
Hi,
Dann verzapft mir Wikipedia nen Sch...
Nö.
[quote]
Auch in der Mathematik wird das Zeichen oft verwendet, um Potenzen zu kennzeichnen.
[/quote]
"oft" ist nicht "immer", und PHP ist nicht Mathematik.
cu,
Andreas
MudGuard,
Dann verzapft mir Wikipedia nen Sch...
Nö.
Oder doch?
[quote]
Auch in der Mathematik wird das Zeichen oft verwendet, um Potenzen zu kennzeichnen.
[/quote]
"oft" ist nicht "immer",
Ich hab in noch keinem Mathebuch "x^2" (für "x²") gelesen.
und PHP ist nicht Mathematik.
Da versöhnen wir uns wieder. ;-)
Gunnar
Hallo!
Dann verzapft mir Wikipedia nen Sch... http://de.wikipedia.org/wiki/Zirkumflex - Der letzt Absatz:
[quote]
Auch in der Mathematik wird das Zeichen oft verwendet, um Potenzen zu kennzeichnen. Bei der Berechnung von Potenzen, z. B. mit einem Tabellenkalkulationsprogramm oder mit einem Taschenrechner schreibt man statt x² -> x^2.
[/quote]
Ja und? "Auch in der Mathematik wird das Zeichen oft verwendet..." daraus kannst Du doch nicht ernsthaft irgendeine Syntax für eine Programmiersprache ableiten wollen?!
Unter http://de3.php.net/manual/de/language.operators.bitwise.php findest Du:
$a ^ $b Entweder oder (Xor) Bits, die entweder in $a oder $b gesetzt sind, werden gesetzt aber nicht in beiden.
Und Du sagst Du kennst das? Wie kommst Du dann drauf dass dieselbe Syntax eine zweite Bedeutung haben könnte (die zu einem anderen Ergebnis führen muss)?
Die Operatoren sind alle im Manual genau beschrieben: http://de3.php.net/manual/de/language.operators.php
Für Potenzen benötigst Du mathematische Funktionen, in diesem Fall pow().
Aber warum gibt man mir hier 1 aus?
Weil 3 XOR 2 nun mal 1 ist. Wieso kennst Du, der Du ein Tutorial zum Thema PHP schreibst, dessen Dokumentation nicht?
Kenn ich natürlich. Sa steht etwas von Bit-Operatoren. Aber Wikipedia hat mich total verwirrt
so sehr dass Du das PHP-Manual nicht mehr finden konntest? ;-)
- es gibt doch Potenzen an und hat nichts mit der Ein/Ausschaltung der Bits zu tun (laut Wikipedia jedenfalls).
In manchen Programmen ist das so, bei PHP eben nicht. Wie gesagt, da stand doch lediglich "Auch in der Mathematik wird das Zeichen oft verwendet..."
Grüße
Andreas
PS: Du kennst http://tut.php-q.net/?
so sehr dass Du das PHP-Manual nicht mehr finden konntest? ;-)
PS: Du kennst http://tut.php-q.net/?
Ihr haltet mich alle für blöd, oder ? :-)
Natürlich kenne ich das alles. Arbeite ja nicht umsonst schon seit 2 Jahren an PHP. Da ich diesen ^ aber nie benutze, kam mir das ein wenig komisch vor (Bitte nicht hauen...). Wobei braucht man das ^ überhaupt, ist der sinnvoll?
Okay, ihr habt mich wieder auf den richtigen Weg gebracht. Danke dafür.
Ach ja, MudGuard: Du hast recht, PHP ist nicht Mathematik - basiert aber darauf und folgt denselben Regeln, vor allem die Operatoren!
Hej,
Wobei braucht man das ^ überhaupt, ist der sinnvoll?
Is das dein Ernst? Wie möchtest du sonst durch einen logischen Ausdruck beschreiben, dass genau einer von zwei Zuständen erlaubt ist?
( a ^ b ) == ( ( a && ! b ) || ( ! a && b ) )
Ach ja, MudGuard: Du hast recht, PHP ist nicht Mathematik - basiert aber darauf und folgt denselben Regeln, vor allem die Operatoren!
Aha.
Beste Grüße
Biesterfeld