wyświetlanie "stringa ze {$zmienną} w nawiasach klamrowych"

wyświetlanie "stringa ze {$zmienną} w nawiasach klamrowych"
Freja Draco
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3394
0

Rozumiem po co to jest, dzięki temu mogę wkleić zmienną wewnątrz stringa bez odstępów przed i po oraz bez przełamywania go i sklejania ="aa" . $z. "cc".

Kopiuj
$z="bb";
$string="aa{$z}cc";

I dostać w wyniku ciąg: aabbcc, no i super.

Ale jak eskejpnę te klamry:

Kopiuj
$z="bb";
$string="aa\{$z\}cc";

To dostanę piękny ciąg aa\{bb\}cc.

Pytanie: czy jest jakaś ludzka metoda na uzyskanie na wyjściu ciągu: aa{bb}cc?
Bo po nieludzku albo posklejam to z kilku kawałków, albo zdefiniuję se wcześniej zmienne $lewy_nawias / $prawy_nawias.

SP
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 52
1

Racze tylko tak:

Kopiuj
$string="aa{". $z ."}cc";

DE
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1788
1

Wyescapeuj zmienną zamiast nawiasów:

Kopiuj
$str = "aa{\$z}cc";

Inaczej Ci nie zadziała, dlatego że w PHP możesz też użyć takiego zapisu:

Kopiuj
$str = "aa$z.cc"

I zadziała. Wcale nie trzeba użyć {}, żeby to przeszło. Musisz tylko po zmiennej postawić jakiś znak, który PHP nie zinterpretuje jako część nazwy zmiennej (w tym wypadku użyłem .).

Kopiuj
$foo = 'foo';
$bar = 'bar';
$baz = 'baz';

$foobarbaz = "foo: $foo bar: $bar baz: $baz";

Albo jeszcze prościej, użyj pojedynczych cudzysłów..

Kopiuj
$str = 'aa{$z}cc';

Edit
haha, dopiero po poście @sieedukuje zobaczyłem o co Ci chodzi... :faceplam: no nic trochę wiedzy nie zaszkodzi :P

SI
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 136
3

Możesz napisać tak:

Kopiuj
$str = "aa{{$z}}cc";

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.