Frage

<?php echo ($i % 6 == 5) ? 'style=\"margin-right:0px\"' : ''; ?>

Ich bekomme nur style="" auf dem Ansichtsfenster gedruckt.

Aktualisieren:Warum ist es unnötig, doppelte Anführungszeichen zu umgehen, wenn wir uns innerhalb einer Zeichenfolge befinden?Weil doppelte Anführungszeichen niemals als etwas anderes als eine Zeichenfolge angesehen werden, wenn sie in einfachen Anführungszeichen stehen?

Danke im Voraus, Mem

War es hilfreich?

Lösung

Warum ist es unnötig, doppelte Anführungszeichen zu umgehen, wenn wir uns innerhalb einer Zeichenfolge befinden?Weil doppelte Anführungszeichen niemals als etwas anderes als eine Zeichenfolge angesehen werden, wenn sie in einfachen Anführungszeichen stehen?

Der Handbuch, in Bezug auf Zeichenfolgen in einfachen Anführungszeichen:

Um ein einfaches Anführungszeichen anzugeben, maskieren Sie es mit einem Backslash (\).Um einen wörtlichen Backslash anzugeben, verdoppeln Sie ihn (\\). Alle anderen Vorkommen eines Backslashs werden als wörtlicher Backslash behandelt:Dies bedeutet, dass die anderen Escape-Sequenzen, die Sie möglicherweise gewohnt sind, wie z. B. oder , buchstäblich wie angegeben ausgegeben werden und keine besondere Bedeutung haben.

Andere Tipps

Es gibt keine Notwendigkeit, doppelte Anführungszeichen in einfachen Anführungszeichen zu entkommen.

<?php echo ($i % 6 == 5) ? 'style="margin-right:0px"' : ''; ?>

Sie müssen nur einfache Anführungszeichen in einfachen oder doppelten Anführungszeichen in doppelten Anführungszeichen entkommen. Wenn Sie einen Apostroph innerhalb einer einzigen Zeichenfolge in Anführungszeichen schreiben wollen, wäre das Apostroph die Zeichenfolge beenden.

$foo = 'a'b';

sieht PHP dies als die Zeichenfolge a, gefolgt von einer sinnlosen b und dem Beginn des Strings ';, die nie beendet wird; das ist ungültige Syntax.

$foo = 'a\'b';

Das ist richtig als die Zeichenfolge a'b analysiert. Sie haben die Bedeutung entkam das Zitat in der Regel an diesem Punkt hat.

Mit doppelten Anführungszeichen in einfachen Anführungszeichen, gibt es keine solche Zweideutigkeit. Ein doppeltes Anführungszeichen in einer einzigen Zeichenfolge in Anführungszeichen nicht beendet die Zeichenfolge, hat es keine solche besondere Bedeutung gibt, die Flucht brauchen würden. Wenn Sie einen umgekehrten Schrägstrich enthalten, wird der Schrägstrich verwendet wörtlich.

$foo = 'a"b';  // a"b
$foo = 'a\"b'; // a\"b

Ich nehme an dem Problem ist, wie man am Ausgang zu suchen. Wenn der Ausgang style=\"…\" ist, flüchtete die doppelten Anführungszeichen ungültige Syntax in der Umwelt verursachen könnten, wo Sie suchen am Ausgang.

Sie verwendet Apostrophe für diese Saite ', so doppelte Anführungszeichen " entweicht innerhalb der String nicht notwendig ist. Ersetzen Sie, dass mit 'style="margin-right:0px"' und es sollte gut funktionieren.

Um zu erklären, wie PHP Griffe Strings und Anführungszeichen ein bisschen besser, ist es hilfreich, den Unterschied zwischen ' und " zu kennen. Strings mit ' eingekapselt sind immer als Service-Leistung gezeigt. Nichts in der Zeichenfolge wird analysiert, einschließlich Escape-Zeichen (wie \n für eine neue Zeile oder entkam Anführungszeichen, mit Ausnahme von einfachen Anführungszeichen \' entkommen). Im Gegensatz dazu werden in " verkapselt Strings analysiert, so dass, wenn Sie Escape-Zeichen haben sie richtig angezeigt werden, und wenn Sie innerhalb der Zeichenfolge alle Variablen haben, werden sie auch eingegeben werden. Zum Beispiel:

// Set name variable to my name
$name = "nhinkle";

// Echo hello name with single quotes
echo 'hello {$name}';
// The result will be "hello {$name}"

// Echo hello name with double quotes
echo "hello {$name}";
// The result will be "hello nhinkle"

Es dauert weniger Rechenleistung einfache Anführungszeichen zu verwenden, da PHP nicht die Zeichenfolge scannen müssen, etwas zu entkommen, es muss nur das Ende der Zeichenfolge finden. Wenn Sie jedoch Bedarf an Parse Dinge in der Zeichenfolge zu tun, stellen Sie sicher, doppelte Anführungszeichen verwenden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top