Pipe Anmelden PHP-Code

8

Ich wollte zwei Variablen verketten, und per Fehler tippte ich einen anderen Code und ich bekam ein seltsames Ergebnis.

So sieht der Code aus:

%Vor%

Was macht das Rohrschild, wenn es nicht verkettet ist?

    
Hamza 17.03.2012, 12:21
quelle

4 Antworten

5

Laut PHP Handbuch

"|" ist ein "bitweises ODER". Bitweise Operatoren erlauben die Auswertung und Manipulation bestimmter Bits innerhalb einer Ganzzahl.

%Vor%

Beispiel:

%Vor%

Dies würde die Zahl 11 wie folgt ausgeben:

%Vor%

Wenn Sie bemerken, dass wir 3 Bits gesetzt haben, fügen Sie in den Spalten 8, 2 und 1 die 8 + 2 + 1 hinzu und Sie erhalten 11.

Für reine Stringverkettungen verwenden Sie den Punkt . operator.

Ich hoffe, dass es das verdeutlicht.

    
Songo 17.03.2012, 12:42
quelle
5

Es ist der bitweise Operator OR

Wenn Sie einen String mit einem String versehen möchten, sollten Sie dot

verwenden %Vor%

Beispiel für OR bitweise Verwendung

%Vor%     
Rezigned 17.03.2012 12:23
quelle
3

Das | bedeutet "bitweises ODER", das die Zeichenfolgen in Binärwerte umwandelt und sie dann übereinander legt, um das Ergebnis mit logischem ODER für jede Position zu berechnen, dh wenn eine der beiden Zeichen eine 1 an dieser Position hat, dann hat das Ergebnis andernfalls eine 1 , Sie erhalten eine 0.

In diesem Fall geschieht dies mit den numerischen Ascii-Zeichencodes jedes Zeichens, was manchmal zu neuen Zeichencodes und manchmal zu Müll führt, der nicht gerendert wird. Deshalb ist der Anfang von "Hello world" durcheinander gebracht, wo er mit "test" überlagert ist, aber das Ende ist in Ordnung, weil ihm zu diesem Zeitpunkt keine 1s von einer anderen Zeichenkette hinzugefügt wird. Siehe hier für ein ausführlicheres Beispiel aus dem Handbuch (verwendet XOR, aber dasselbe Idee).

Verwenden. zur Verkettung.

    
Matt Gibson 17.03.2012 12:29
quelle
1

Ich würde vermuten, dass es ein bitweises ODER ist

    
Rich 17.03.2012 12:24
quelle

Tags und Links